summaryrefslogtreecommitdiff
path: root/Build/source
diff options
context:
space:
mode:
authorYukimasa Morimi <h20y6m@yahoo.co.jp>2023-11-18 03:27:16 +0000
committerYukimasa Morimi <h20y6m@yahoo.co.jp>2023-11-18 03:27:16 +0000
commit573f5f0945a6ae0bc310f423f7ec0b8dd8a7516d (patch)
tree746aeb40ed9712d43f6d2a19329a4a289a72cde7 /Build/source
parentff70da7baa0b10ff263663befc33dbba95583e7a (diff)
dvipdfm-x: Support for new Adobe-Japan1-UCS2 CMap
git-svn-id: svn://tug.org/texlive/trunk@68889 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r--Build/source/texk/dvipdfm-x/ChangeLog9
-rw-r--r--Build/source/texk/dvipdfm-x/cidtype2.c68
-rwxr-xr-xBuild/source/texk/dvipdfm-x/configure22
-rw-r--r--Build/source/texk/dvipdfm-x/configure.ac2
-rw-r--r--Build/source/texk/dvipdfm-x/unicode.c1031
-rw-r--r--Build/source/texk/dvipdfm-x/unicode.h2
6 files changed, 1118 insertions, 16 deletions
diff --git a/Build/source/texk/dvipdfm-x/ChangeLog b/Build/source/texk/dvipdfm-x/ChangeLog
index a10a1ece76d..0d24958d8c5 100644
--- a/Build/source/texk/dvipdfm-x/ChangeLog
+++ b/Build/source/texk/dvipdfm-x/ChangeLog
@@ -1,3 +1,12 @@
+2023-11-18 Yukimasa Morimi <h20y6m@yahoo.co.jp>
+
+ * cidtype2.c, unicode.c: Support for new Adobe-Japan1-UCS2 CMap.
+ Ignore variation selectors, when mapping from CID to Unicode.
+ Converts CJK Unified Ideographs with variant selectors to
+ CJK Compatibility Ideographs, if possible.
+ https://github.com/texjporg/tex-jp-build/issues/155
+ * configure.ac: version 20231118.
+
2023-08-11 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
* dpxfile.c: Avoid compiler warning on MinGW.
diff --git a/Build/source/texk/dvipdfm-x/cidtype2.c b/Build/source/texk/dvipdfm-x/cidtype2.c
index 15db9c5b7ad..2c6caf908eb 100644
--- a/Build/source/texk/dvipdfm-x/cidtype2.c
+++ b/Build/source/texk/dvipdfm-x/cidtype2.c
@@ -463,18 +463,78 @@ cid_to_code (CMap *cmap, CID cid, int unicode_cmap)
else if (outbytesleft == 28) {
if (unicode_cmap) {
/* We assume the output encoding is UTF-16. */
- int32_t uc;
+ int32_t uc, uvs;
const unsigned char *endptr;
p = outbuf;
endptr = p + 4;
uc = UC_UTF16BE_decode_char(&p, endptr);
- if (p != endptr)
- WARN("CID=%u mapped to non-single Unicode characters...", cid);
- return p == endptr ? uc : -1;
+ if (p == endptr)
+ return uc; /* single Unicode characters */
+ /* Check following Variation Selectors */
+ uvs = UC_UTF16BE_decode_char(&p, endptr);
+ if (p == endptr && uvs >= 0xfe00 && uvs <= 0xfe0f) {
+ /* Combine CJK compatibility ideograph */
+ int32_t cci = UC_Combine_CJK_compatibility_ideograph(uc, uvs);
+ if (cci > 0)
+ return cci;
+ /* Ignore Standardized Variation Sequence */
+ WARN("Ignored Variation Selector: CID=%u mapped to U+%04X U+%04X", cid, uc, uvs);
+ return uc;
+ }
+ WARN("CID=%u mapped to non-single Unicode characters...", cid);
+ return -1;
} else {
return (outbuf[0] << 24)|(outbuf[1] << 16)|(outbuf[2] << 8)|outbuf[3];
}
+ } else if (outbytesleft == 26) { /* 6 bytes sequence */
+ if (unicode_cmap) {
+ /* We assume the output encoding is UTF-16. */
+ int32_t uc, uvs;
+ const unsigned char *endptr;
+
+ p = outbuf;
+ endptr = p + 6;
+ uc = UC_UTF16BE_decode_char(&p, endptr);
+ uvs = UC_UTF16BE_decode_char(&p, endptr);
+ if (p == endptr) {
+ if (uvs >= 0xfe00 && uvs <= 0xfe0f) {
+ /* Combine CJK compatibility ideograph */
+ int32_t cci = UC_Combine_CJK_compatibility_ideograph(uc, uvs);
+ if (cci > 0)
+ return cci;
+ /* Ignore Standardized Variation Sequence */
+ WARN("Ignored Variation Selector: CID=%u mapped to U+%04X U+%04X", cid, uc, uvs);
+ return uc;
+ } else if (uvs >= 0xe0100 && uvs <= 0xe01ef) {
+ /* Ignore Ideographic Variation Sequence */
+ WARN("Ignored Variation Selector: CID=%u mapped to U+%04X U+%04X", cid, uc, uvs);
+ return uc;
+ }
+ }
+ WARN("CID=%u mapped to non-single Unicode characters...", cid);
+ return -1;
+ }
+ } else if (outbytesleft == 24) { /* 8 bytes sequence */
+ if (unicode_cmap) {
+ /* We assume the output encoding is UTF-16. */
+ int32_t uc, uvs;
+ const unsigned char *endptr;
+
+ p = outbuf;
+ endptr = p + 8;
+ uc = UC_UTF16BE_decode_char(&p, endptr);
+ uvs = UC_UTF16BE_decode_char(&p, endptr);
+ if (p == endptr) {
+ if (uvs >= 0xe0100 && uvs <= 0xe01ef) {
+ /* Ignore Ideographic Variation Sequence */
+ WARN("Ignored Variation Selector: CID=%u mapped to U+%04X U+%04X", cid, uc, uvs);
+ return uc;
+ }
+ }
+ WARN("CID=%u mapped to non-single Unicode characters...", cid);
+ return -1;
+ }
}
return -1;
diff --git a/Build/source/texk/dvipdfm-x/configure b/Build/source/texk/dvipdfm-x/configure
index 6c36033a41f..58f92332582 100755
--- a/Build/source/texk/dvipdfm-x/configure
+++ b/Build/source/texk/dvipdfm-x/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for dvipdfm-x (TeX Live) 20230429.
+# Generated by GNU Autoconf 2.71 for dvipdfm-x (TeX Live) 20231118.
#
# Report bugs to <dvipdfmx@tug.org>.
#
@@ -629,8 +629,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='dvipdfm-x (TeX Live)'
PACKAGE_TARNAME='dvipdfm-x--tex-live-'
-PACKAGE_VERSION='20230429'
-PACKAGE_STRING='dvipdfm-x (TeX Live) 20230429'
+PACKAGE_VERSION='20231118'
+PACKAGE_STRING='dvipdfm-x (TeX Live) 20231118'
PACKAGE_BUGREPORT='dvipdfmx@tug.org'
PACKAGE_URL=''
@@ -1396,7 +1396,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures dvipdfm-x (TeX Live) 20230429 to adapt to many kinds of systems.
+\`configure' configures dvipdfm-x (TeX Live) 20231118 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1468,7 +1468,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of dvipdfm-x (TeX Live) 20230429:";;
+ short | recursive ) echo "Configuration of dvipdfm-x (TeX Live) 20231118:";;
esac
cat <<\_ACEOF
@@ -1598,7 +1598,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-dvipdfm-x (TeX Live) configure 20230429
+dvipdfm-x (TeX Live) configure 20231118
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2354,7 +2354,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by dvipdfm-x (TeX Live) $as_me 20230429, which was
+It was created by dvipdfm-x (TeX Live) $as_me 20231118, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -8795,7 +8795,7 @@ fi
# Define the identity of the package.
PACKAGE='dvipdfm-x--tex-live-'
- VERSION='20230429'
+ VERSION='20231118'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -15801,7 +15801,7 @@ Usage: $0 [OPTIONS]
Report bugs to <bug-libtool@gnu.org>."
lt_cl_version="\
-dvipdfm-x (TeX Live) config.lt 20230429
+dvipdfm-x (TeX Live) config.lt 20231118
configured by $0, generated by GNU Autoconf 2.71.
Copyright (C) 2011 Free Software Foundation, Inc.
@@ -17723,7 +17723,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by dvipdfm-x (TeX Live) $as_me 20230429, which was
+This file was extended by dvipdfm-x (TeX Live) $as_me 20231118, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17795,7 +17795,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-dvipdfm-x (TeX Live) config.status 20230429
+dvipdfm-x (TeX Live) config.status 20231118
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/texk/dvipdfm-x/configure.ac b/Build/source/texk/dvipdfm-x/configure.ac
index 4997dff948c..fcc32d26421 100644
--- a/Build/source/texk/dvipdfm-x/configure.ac
+++ b/Build/source/texk/dvipdfm-x/configure.ac
@@ -8,7 +8,7 @@ dnl This file is free software; the copyright holder
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
-AC_INIT([dvipdfm-x (TeX Live)], [20230429], [dvipdfmx@tug.org])
+AC_INIT([dvipdfm-x (TeX Live)], [20231118], [dvipdfmx@tug.org])
AC_PREREQ([2.65])
AC_CONFIG_SRCDIR([agl.c])
AC_CONFIG_AUX_DIR([../../build-aux])
diff --git a/Build/source/texk/dvipdfm-x/unicode.c b/Build/source/texk/dvipdfm-x/unicode.c
index aa094369256..5be8b180ac8 100644
--- a/Build/source/texk/dvipdfm-x/unicode.c
+++ b/Build/source/texk/dvipdfm-x/unicode.c
@@ -256,3 +256,1034 @@ UC_UTF8_encode_char (int32_t ucv, unsigned char **pp, unsigned char *endptr)
*pp += count;
return count;
}
+
+int32_t
+UC_Combine_CJK_compatibility_ideograph (int32_t ucv, int32_t uvs)
+{
+ /* https://www.unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt */
+ static const int32_t CJK_compatibility_ideographs[][3] = {
+ {0x349E, 0xFE00, 0x2F80C},
+ {0x34B9, 0xFE00, 0x2F813},
+ {0x34BB, 0xFE00, 0x2F9CA},
+ {0x34DF, 0xFE00, 0x2F81F},
+ {0x3515, 0xFE00, 0x2F824},
+ {0x36EE, 0xFE00, 0x2F867},
+ {0x36FC, 0xFE00, 0x2F868},
+ {0x3781, 0xFE00, 0x2F876},
+ {0x382F, 0xFE00, 0x2F883},
+ {0x3862, 0xFE00, 0x2F888},
+ {0x387C, 0xFE00, 0x2F88A},
+ {0x38C7, 0xFE00, 0x2F896},
+ {0x38E3, 0xFE00, 0x2F89B},
+ {0x391C, 0xFE00, 0x2F8A2},
+ {0x393A, 0xFE00, 0x2F8A1},
+ {0x3A2E, 0xFE00, 0x2F8C2},
+ {0x3A6C, 0xFE00, 0x2F8C7},
+ {0x3AE4, 0xFE00, 0x2F8D1},
+ {0x3B08, 0xFE00, 0x2F8D0},
+ {0x3B19, 0xFE00, 0x2F8CE},
+ {0x3B49, 0xFE00, 0x2F8DE},
+ {0x3B9D, 0xFE00, 0xFAD2},
+ {0x3B9D, 0xFE01, 0x2F8E7},
+ {0x3C18, 0xFE00, 0x2F8EE},
+ {0x3C4E, 0xFE00, 0x2F8F2},
+ {0x3D33, 0xFE00, 0x2F90A},
+ {0x3D96, 0xFE00, 0x2F916},
+ {0x3EAC, 0xFE00, 0x2F92A},
+ {0x3EB8, 0xFE00, 0x2F92C},
+ {0x3EB8, 0xFE01, 0x2F92D},
+ {0x3F1B, 0xFE00, 0x2F933},
+ {0x3FFC, 0xFE00, 0x2F93E},
+ {0x4008, 0xFE00, 0x2F93F},
+ {0x4018, 0xFE00, 0xFAD3},
+ {0x4039, 0xFE00, 0xFAD4},
+ {0x4039, 0xFE01, 0x2F949},
+ {0x4046, 0xFE00, 0x2F94B},
+ {0x4096, 0xFE00, 0x2F94C},
+ {0x40E3, 0xFE00, 0x2F951},
+ {0x412F, 0xFE00, 0x2F958},
+ {0x4202, 0xFE00, 0x2F960},
+ {0x4227, 0xFE00, 0x2F964},
+ {0x42A0, 0xFE00, 0x2F967},
+ {0x4301, 0xFE00, 0x2F96D},
+ {0x4334, 0xFE00, 0x2F971},
+ {0x4359, 0xFE00, 0x2F974},
+ {0x43D5, 0xFE00, 0x2F981},
+ {0x43D9, 0xFE00, 0x2F8D7},
+ {0x440B, 0xFE00, 0x2F984},
+ {0x446B, 0xFE00, 0x2F98E},
+ {0x452B, 0xFE00, 0x2F9A7},
+ {0x455D, 0xFE00, 0x2F9AE},
+ {0x4561, 0xFE00, 0x2F9AF},
+ {0x456B, 0xFE00, 0x2F9B2},
+ {0x45D7, 0xFE00, 0x2F9BF},
+ {0x45F9, 0xFE00, 0x2F9C2},
+ {0x4635, 0xFE00, 0x2F9C8},
+ {0x46BE, 0xFE00, 0x2F9CD},
+ {0x46C7, 0xFE00, 0x2F9CE},
+ {0x4995, 0xFE00, 0x2F9EF},
+ {0x49E6, 0xFE00, 0x2F9F2},
+ {0x4A6E, 0xFE00, 0x2F9F8},
+ {0x4A76, 0xFE00, 0x2F9F9},
+ {0x4AB2, 0xFE00, 0x2F9FC},
+ {0x4B33, 0xFE00, 0x2FA03},
+ {0x4BCE, 0xFE00, 0x2FA08},
+ {0x4CCE, 0xFE00, 0x2FA0D},
+ {0x4CED, 0xFE00, 0x2FA0E},
+ {0x4CF8, 0xFE00, 0x2FA11},
+ {0x4D56, 0xFE00, 0x2FA16},
+ {0x4E0D, 0xFE00, 0xF967},
+ {0x4E26, 0xFE00, 0xFA70},
+ {0x4E32, 0xFE00, 0xF905},
+ {0x4E38, 0xFE00, 0x2F801},
+ {0x4E39, 0xFE00, 0xF95E},
+ {0x4E3D, 0xFE00, 0x2F800},
+ {0x4E41, 0xFE00, 0x2F802},
+ {0x4E82, 0xFE00, 0xF91B},
+ {0x4E86, 0xFE00, 0xF9BA},
+ {0x4EAE, 0xFE00, 0xF977},
+ {0x4EC0, 0xFE00, 0xF9FD},
+ {0x4ECC, 0xFE00, 0x2F819},
+ {0x4EE4, 0xFE00, 0xF9A8},
+ {0x4F60, 0xFE00, 0x2F804},
+ {0x4F80, 0xFE00, 0xFA73},
+ {0x4F86, 0xFE00, 0xF92D},
+ {0x4F8B, 0xFE00, 0xF9B5},
+ {0x4FAE, 0xFE00, 0xFA30},
+ {0x4FAE, 0xFE01, 0x2F805},
+ {0x4FBB, 0xFE00, 0x2F806},
+ {0x4FBF, 0xFE00, 0xF965},
+ {0x5002, 0xFE00, 0x2F807},
+ {0x502B, 0xFE00, 0xF9D4},
+ {0x507A, 0xFE00, 0x2F808},
+ {0x5099, 0xFE00, 0x2F809},
+ {0x50CF, 0xFE00, 0x2F80B},
+ {0x50DA, 0xFE00, 0xF9BB},
+ {0x50E7, 0xFE00, 0xFA31},
+ {0x50E7, 0xFE01, 0x2F80A},
+ {0x5140, 0xFE00, 0xFA0C},
+ {0x5145, 0xFE00, 0xFA74},
+ {0x514D, 0xFE00, 0xFA32},
+ {0x514D, 0xFE01, 0x2F80E},
+ {0x5154, 0xFE00, 0x2F80F},
+ {0x5164, 0xFE00, 0x2F810},
+ {0x5167, 0xFE00, 0x2F814},
+ {0x5168, 0xFE00, 0xFA72},
+ {0x5169, 0xFE00, 0xF978},
+ {0x516D, 0xFE00, 0xF9D1},
+ {0x5177, 0xFE00, 0x2F811},
+ {0x5180, 0xFE00, 0xFA75},
+ {0x518D, 0xFE00, 0x2F815},
+ {0x5192, 0xFE00, 0x2F8D2},
+ {0x5195, 0xFE00, 0x2F8D3},
+ {0x5197, 0xFE00, 0x2F817},
+ {0x51A4, 0xFE00, 0x2F818},
+ {0x51AC, 0xFE00, 0x2F81A},
+ {0x51B5, 0xFE00, 0xFA71},
+ {0x51B5, 0xFE01, 0x2F81B},
+ {0x51B7, 0xFE00, 0xF92E},
+ {0x51C9, 0xFE00, 0xF979},
+ {0x51CC, 0xFE00, 0xF955},
+ {0x51DC, 0xFE00, 0xF954},
+ {0x51DE, 0xFE00, 0xFA15},
+ {0x51F5, 0xFE00, 0x2F81D},
+ {0x5203, 0xFE00, 0x2F81E},
+ {0x5207, 0xFE00, 0xFA00},
+ {0x5207, 0xFE01, 0x2F850},
+ {0x5217, 0xFE00, 0xF99C},
+ {0x5229, 0xFE00, 0xF9DD},
+ {0x523A, 0xFE00, 0xF9FF},
+ {0x523B, 0xFE00, 0x2F820},
+ {0x5246, 0xFE00, 0x2F821},
+ {0x5272, 0xFE00, 0x2F822},
+ {0x5277, 0xFE00, 0x2F823},
+ {0x5289, 0xFE00, 0xF9C7},
+ {0x529B, 0xFE00, 0xF98A},
+ {0x52A3, 0xFE00, 0xF99D},
+ {0x52B3, 0xFE00, 0x2F992},
+ {0x52C7, 0xFE00, 0xFA76},
+ {0x52C7, 0xFE01, 0x2F825},
+ {0x52C9, 0xFE00, 0xFA33},
+ {0x52C9, 0xFE01, 0x2F826},
+ {0x52D2, 0xFE00, 0xF952},
+ {0x52DE, 0xFE00, 0xF92F},
+ {0x52E4, 0xFE00, 0xFA34},
+ {0x52E4, 0xFE01, 0x2F827},
+ {0x52F5, 0xFE00, 0xF97F},
+ {0x52FA, 0xFE00, 0xFA77},
+ {0x52FA, 0xFE01, 0x2F828},
+ {0x5305, 0xFE00, 0x2F829},
+ {0x5306, 0xFE00, 0x2F82A},
+ {0x5317, 0xFE00, 0xF963},
+ {0x5317, 0xFE01, 0x2F82B},
+ {0x533F, 0xFE00, 0xF9EB},
+ {0x5349, 0xFE00, 0x2F82C},
+ {0x5351, 0xFE00, 0xFA35},
+ {0x5351, 0xFE01, 0x2F82D},
+ {0x535A, 0xFE00, 0x2F82E},
+ {0x5373, 0xFE00, 0x2F82F},
+ {0x5375, 0xFE00, 0xF91C},
+ {0x537D, 0xFE00, 0x2F830},
+ {0x537F, 0xFE00, 0x2F831},
+ {0x537F, 0xFE01, 0x2F832},
+ {0x537F, 0xFE02, 0x2F833},
+ {0x53C3, 0xFE00, 0xF96B},
+ {0x53CA, 0xFE00, 0x2F836},
+ {0x53DF, 0xFE00, 0x2F837},
+ {0x53E5, 0xFE00, 0xF906},
+ {0x53EB, 0xFE00, 0x2F839},
+ {0x53F1, 0xFE00, 0x2F83A},
+ {0x5406, 0xFE00, 0x2F83B},
+ {0x540F, 0xFE00, 0xF9DE},
+ {0x541D, 0xFE00, 0xF9ED},
+ {0x5438, 0xFE00, 0x2F83D},
+ {0x5442, 0xFE00, 0xF980},
+ {0x5448, 0xFE00, 0x2F83E},
+ {0x5468, 0xFE00, 0x2F83F},
+ {0x549E, 0xFE00, 0x2F83C},
+ {0x54A2, 0xFE00, 0x2F840},
+ {0x54BD, 0xFE00, 0xF99E},
+ {0x54F6, 0xFE00, 0x2F841},
+ {0x5510, 0xFE00, 0x2F842},
+ {0x5553, 0xFE00, 0x2F843},
+ {0x5555, 0xFE00, 0xFA79},
+ {0x5563, 0xFE00, 0x2F844},
+ {0x5584, 0xFE00, 0x2F845},
+ {0x5584, 0xFE01, 0x2F846},
+ {0x5587, 0xFE00, 0xF90B},
+ {0x5599, 0xFE00, 0xFA7A},
+ {0x5599, 0xFE01, 0x2F847},
+ {0x559D, 0xFE00, 0xFA36},
+ {0x559D, 0xFE01, 0xFA78},
+ {0x55AB, 0xFE00, 0x2F848},
+ {0x55B3, 0xFE00, 0x2F849},
+ {0x55C0, 0xFE00, 0xFA0D},
+ {0x55C2, 0xFE00, 0x2F84A},
+ {0x55E2, 0xFE00, 0xFA7B},
+ {0x5606, 0xFE00, 0xFA37},
+ {0x5606, 0xFE01, 0x2F84C},
+ {0x5651, 0xFE00, 0x2F84E},
+ {0x5668, 0xFE00, 0xFA38},
+ {0x5674, 0xFE00, 0x2F84F},
+ {0x56F9, 0xFE00, 0xF9A9},
+ {0x5716, 0xFE00, 0x2F84B},
+ {0x5717, 0xFE00, 0x2F84D},
+ {0x578B, 0xFE00, 0x2F855},
+ {0x57CE, 0xFE00, 0x2F852},
+ {0x57F4, 0xFE00, 0x2F853},
+ {0x580D, 0xFE00, 0x2F854},
+ {0x5831, 0xFE00, 0x2F857},
+ {0x5832, 0xFE00, 0x2F856},
+ {0x5840, 0xFE00, 0xFA39},
+ {0x585A, 0xFE00, 0xFA10},
+ {0x585A, 0xFE01, 0xFA7C},
+ {0x585E, 0xFE00, 0xF96C},
+ {0x58A8, 0xFE00, 0xFA3A},
+ {0x58AC, 0xFE00, 0x2F858},
+ {0x58B3, 0xFE00, 0xFA7D},
+ {0x58D8, 0xFE00, 0xF94A},
+ {0x58DF, 0xFE00, 0xF942},
+ {0x58EE, 0xFE00, 0x2F851},
+ {0x58F2, 0xFE00, 0x2F85A},
+ {0x58F7, 0xFE00, 0x2F85B},
+ {0x5906, 0xFE00, 0x2F85C},
+ {0x591A, 0xFE00, 0x2F85D},
+ {0x5922, 0xFE00, 0x2F85E},
+ {0x5944, 0xFE00, 0xFA7E},
+ {0x5948, 0xFE00, 0xF90C},
+ {0x5951, 0xFE00, 0xF909},
+ {0x5954, 0xFE00, 0xFA7F},
+ {0x5962, 0xFE00, 0x2F85F},
+ {0x5973, 0xFE00, 0xF981},
+ {0x59D8, 0xFE00, 0x2F865},
+ {0x59EC, 0xFE00, 0x2F862},
+ {0x5A1B, 0xFE00, 0x2F863},
+ {0x5A27, 0xFE00, 0x2F864},
+ {0x5A62, 0xFE00, 0xFA80},
+ {0x5A66, 0xFE00, 0x2F866},
+ {0x5AB5, 0xFE00, 0x2F986},
+ {0x5B08, 0xFE00, 0x2F869},
+ {0x5B28, 0xFE00, 0xFA81},
+ {0x5B3E, 0xFE00, 0x2F86A},
+ {0x5B3E, 0xFE01, 0x2F86B},
+ {0x5B85, 0xFE00, 0xFA04},
+ {0x5BC3, 0xFE00, 0x2F86D},
+ {0x5BD8, 0xFE00, 0x2F86E},
+ {0x5BE7, 0xFE00, 0xF95F},
+ {0x5BE7, 0xFE01, 0xF9AA},
+ {0x5BE7, 0xFE02, 0x2F86F},
+ {0x5BEE, 0xFE00, 0xF9BC},
+ {0x5BF3, 0xFE00, 0x2F870},
+ {0x5BFF, 0xFE00, 0x2F872},
+ {0x5C06, 0xFE00, 0x2F873},
+ {0x5C22, 0xFE00, 0x2F875},
+ {0x5C3F, 0xFE00, 0xF9BD},
+ {0x5C60, 0xFE00, 0x2F877},
+ {0x5C62, 0xFE00, 0xF94B},
+ {0x5C64, 0xFE00, 0xFA3B},
+ {0x5C65, 0xFE00, 0xF9DF},
+ {0x5C6E, 0xFE00, 0xFA3C},
+ {0x5C6E, 0xFE01, 0x2F878},
+ {0x5C8D, 0xFE00, 0x2F87A},
+ {0x5CC0, 0xFE00, 0x2F879},
+ {0x5D19, 0xFE00, 0xF9D5},
+ {0x5D43, 0xFE00, 0x2F87C},
+ {0x5D50, 0xFE00, 0xF921},
+ {0x5D6B, 0xFE00, 0x2F87F},
+ {0x5D6E, 0xFE00, 0x2F87E},
+ {0x5D7C, 0xFE00, 0x2F880},
+ {0x5DB2, 0xFE00, 0x2F9F4},
+ {0x5DBA, 0xFE00, 0xF9AB},
+ {0x5DE1, 0xFE00, 0x2F881},
+ {0x5DE2, 0xFE00, 0x2F882},
+ {0x5DFD, 0xFE00, 0x2F884},
+ {0x5E28, 0xFE00, 0x2F885},
+ {0x5E3D, 0xFE00, 0x2F886},
+ {0x5E69, 0xFE00, 0x2F887},
+ {0x5E74, 0xFE00, 0xF98E},
+ {0x5EA6, 0xFE00, 0xFA01},
+ {0x5EB0, 0xFE00, 0x2F88B},
+ {0x5EB3, 0xFE00, 0x2F88C},
+ {0x5EB6, 0xFE00, 0x2F88D},
+ {0x5EC9, 0xFE00, 0xF9A2},
+ {0x5ECA, 0xFE00, 0xF928},
+ {0x5ECA, 0xFE01, 0x2F88E},
+ {0x5ED2, 0xFE00, 0xFA82},
+ {0x5ED3, 0xFE00, 0xFA0B},
+ {0x5ED9, 0xFE00, 0xFA83},
+ {0x5EEC, 0xFE00, 0xF982},
+ {0x5EFE, 0xFE00, 0x2F890},
+ {0x5F04, 0xFE00, 0xF943},
+ {0x5F22, 0xFE00, 0x2F894},
+ {0x5F22, 0xFE01, 0x2F895},
+ {0x5F53, 0xFE00, 0x2F874},
+ {0x5F62, 0xFE00, 0x2F899},
+ {0x5F69, 0xFE00, 0xFA84},
+ {0x5F6B, 0xFE00, 0x2F89A},
+ {0x5F8B, 0xFE00, 0xF9D8},
+ {0x5F9A, 0xFE00, 0x2F89C},
+ {0x5FA9, 0xFE00, 0xF966},
+ {0x5FAD, 0xFE00, 0xFA85},
+ {0x5FCD, 0xFE00, 0x2F89D},
+ {0x5FD7, 0xFE00, 0x2F89E},
+ {0x5FF5, 0xFE00, 0xF9A3},
+ {0x5FF9, 0xFE00, 0x2F89F},
+ {0x6012, 0xFE00, 0xF960},
+ {0x601C, 0xFE00, 0xF9AC},
+ {0x6075, 0xFE00, 0xFA6B},
+ {0x6081, 0xFE00, 0x2F8A0},
+ {0x6094, 0xFE00, 0xFA3D},
+ {0x6094, 0xFE01, 0x2F8A3},
+ {0x60C7, 0xFE00, 0x2F8A5},
+ {0x60D8, 0xFE00, 0xFA86},
+ {0x60E1, 0xFE00, 0xF9B9},
+ {0x6108, 0xFE00, 0xFA88},
+ {0x6144, 0xFE00, 0xF9D9},
+ {0x6148, 0xFE00, 0x2F8A6},
+ {0x614C, 0xFE00, 0x2F8A7},
+ {0x614C, 0xFE01, 0x2F8A9},
+ {0x614E, 0xFE00, 0xFA87},
+ {0x614E, 0xFE01, 0x2F8A8},
+ {0x6160, 0xFE00, 0xFA8A},
+ {0x6168, 0xFE00, 0xFA3E},
+ {0x617A, 0xFE00, 0x2F8AA},
+ {0x618E, 0xFE00, 0xFA3F},
+ {0x618E, 0xFE01, 0xFA89},
+ {0x618E, 0xFE02, 0x2F8AB},
+ {0x6190, 0xFE00, 0xF98F},
+ {0x61A4, 0xFE00, 0x2F8AD},
+ {0x61AF, 0xFE00, 0x2F8AE},
+ {0x61B2, 0xFE00, 0x2F8AC},
+ {0x61DE, 0xFE00, 0x2F8AF},
+ {0x61F2, 0xFE00, 0xFA40},
+ {0x61F2, 0xFE01, 0xFA8B},
+ {0x61F2, 0xFE02, 0x2F8B0},
+ {0x61F6, 0xFE00, 0xF90D},
+ {0x61F6, 0xFE01, 0x2F8B1},
+ {0x6200, 0xFE00, 0xF990},
+ {0x6210, 0xFE00, 0x2F8B2},
+ {0x621B, 0xFE00, 0x2F8B3},
+ {0x622E, 0xFE00, 0xF9D2},
+ {0x6234, 0xFE00, 0xFA8C},
+ {0x625D, 0xFE00, 0x2F8B4},
+ {0x62B1, 0xFE00, 0x2F8B5},
+ {0x62C9, 0xFE00, 0xF925},
+ {0x62CF, 0xFE00, 0xF95B},
+ {0x62D3, 0xFE00, 0xFA02},
+ {0x62D4, 0xFE00, 0x2F8B6},
+ {0x62FC, 0xFE00, 0x2F8BA},
+ {0x62FE, 0xFE00, 0xF973},
+ {0x633D, 0xFE00, 0x2F8B9},
+ {0x6350, 0xFE00, 0x2F8B7},
+ {0x6368, 0xFE00, 0x2F8BB},
+ {0x637B, 0xFE00, 0xF9A4},
+ {0x6383, 0xFE00, 0x2F8BC},
+ {0x63A0, 0xFE00, 0xF975},
+ {0x63A9, 0xFE00, 0x2F8C1},
+ {0x63C4, 0xFE00, 0xFA8D},
+ {0x63C5, 0xFE00, 0x2F8C0},
+ {0x63E4, 0xFE00, 0x2F8BD},
+ {0x641C, 0xFE00, 0xFA8E},
+ {0x6422, 0xFE00, 0x2F8BF},
+ {0x6452, 0xFE00, 0xFA8F},
+ {0x6469, 0xFE00, 0x2F8C3},
+ {0x6477, 0xFE00, 0x2F8C6},
+ {0x647E, 0xFE00, 0x2F8C4},
+ {0x649A, 0xFE00, 0xF991},
+ {0x649D, 0xFE00, 0x2F8C5},
+ {0x64C4, 0xFE00, 0xF930},
+ {0x654F, 0xFE00, 0xFA41},
+ {0x654F, 0xFE01, 0x2F8C8},
+ {0x6556, 0xFE00, 0xFA90},
+ {0x656C, 0xFE00, 0x2F8C9},
+ {0x6578, 0xFE00, 0xF969},
+ {0x6599, 0xFE00, 0xF9BE},
+ {0x65C5, 0xFE00, 0xF983},
+ {0x65E2, 0xFE00, 0xFA42},
+ {0x65E3, 0xFE00, 0x2F8CB},
+ {0x6613, 0xFE00, 0xF9E0},
+ {0x6649, 0xFE00, 0x2F8CD},
+ {0x6674, 0xFE00, 0xFA12},
+ {0x6674, 0xFE01, 0xFA91},
+ {0x6688, 0xFE00, 0xF9C5},
+ {0x6691, 0xFE00, 0xFA43},
+ {0x6691, 0xFE01, 0x2F8CF},
+ {0x669C, 0xFE00, 0x2F8D5},
+ {0x66B4, 0xFE00, 0xFA06},
+ {0x66C6, 0xFE00, 0xF98B},
+ {0x66F4, 0xFE00, 0xF901},
+ {0x66F8, 0xFE00, 0x2F8CC},
+ {0x6700, 0xFE00, 0x2F8D4},
+ {0x6717, 0xFE00, 0xF929},
+ {0x6717, 0xFE01, 0xFA92},
+ {0x6717, 0xFE02, 0x2F8D8},
+ {0x671B, 0xFE00, 0xFA93},
+ {0x671B, 0xFE01, 0x2F8D9},
+ {0x6721, 0xFE00, 0x2F8DA},
+ {0x674E, 0xFE00, 0xF9E1},
+ {0x6753, 0xFE00, 0x2F8DC},
+ {0x6756, 0xFE00, 0xFA94},
+ {0x675E, 0xFE00, 0x2F8DB},
+ {0x677B, 0xFE00, 0xF9C8},
+ {0x6785, 0xFE00, 0x2F8E0},
+ {0x6797, 0xFE00, 0xF9F4},
+ {0x67F3, 0xFE00, 0xF9C9},
+ {0x67FA, 0xFE00, 0x2F8DF},
+ {0x6817, 0xFE00, 0xF9DA},
+ {0x681F, 0xFE00, 0x2F8E5},
+ {0x6852, 0xFE00, 0x2F8E1},
+ {0x6881, 0xFE00, 0xF97A},
+ {0x6885, 0xFE00, 0xFA44},
+ {0x6885, 0xFE01, 0x2F8E2},
+ {0x688E, 0xFE00, 0x2F8E4},
+ {0x68A8, 0xFE00, 0xF9E2},
+ {0x6914, 0xFE00, 0x2F8E6},
+ {0x6942, 0xFE00, 0x2F8E8},
+ {0x69A3, 0xFE00, 0x2F8E9},
+ {0x69EA, 0xFE00, 0x2F8EA},
+ {0x6A02, 0xFE00, 0xF914},
+ {0x6A02, 0xFE01, 0xF95C},
+ {0x6A02, 0xFE02, 0xF9BF},
+ {0x6A13, 0xFE00, 0xF94C},
+ {0x6AA8, 0xFE00, 0x2F8EB},
+ {0x6AD3, 0xFE00, 0xF931},
+ {0x6ADB, 0xFE00, 0x2F8ED},
+ {0x6B04, 0xFE00, 0xF91D},
+ {0x6B21, 0xFE00, 0x2F8EF},
+ {0x6B54, 0xFE00, 0x2F8F1},
+ {0x6B72, 0xFE00, 0x2F8F3},
+ {0x6B77, 0xFE00, 0xF98C},
+ {0x6B79, 0xFE00, 0xFA95},
+ {0x6B9F, 0xFE00, 0x2F8F4},
+ {0x6BAE, 0xFE00, 0xF9A5},
+ {0x6BBA, 0xFE00, 0xF970},
+ {0x6BBA, 0xFE01, 0xFA96},
+ {0x6BBA, 0xFE02, 0x2F8F5},
+ {0x6BBB, 0xFE00, 0x2F8F6},
+ {0x6C4E, 0xFE00, 0x2F8FA},
+ {0x6C67, 0xFE00, 0x2F8FE},
+ {0x6C88, 0xFE00, 0xF972},
+ {0x6CBF, 0xFE00, 0x2F8FC},
+ {0x6CCC, 0xFE00, 0xF968},
+ {0x6CCD, 0xFE00, 0x2F8FD},
+ {0x6CE5, 0xFE00, 0xF9E3},
+ {0x6D16, 0xFE00, 0x2F8FF},
+ {0x6D1B, 0xFE00, 0xF915},
+ {0x6D1E, 0xFE00, 0xFA05},
+ {0x6D34, 0xFE00, 0x2F907},
+ {0x6D3E, 0xFE00, 0x2F900},
+ {0x6D41, 0xFE00, 0xF9CA},
+ {0x6D41, 0xFE01, 0xFA97},
+ {0x6D41, 0xFE02, 0x2F902},
+ {0x6D69, 0xFE00, 0x2F903},
+ {0x6D6A, 0xFE00, 0xF92A},
+ {0x6D77, 0xFE00, 0xFA45},
+ {0x6D77, 0xFE01, 0x2F901},
+ {0x6D78, 0xFE00, 0x2F904},
+ {0x6D85, 0xFE00, 0x2F905},
+ {0x6DCB, 0xFE00, 0xF9F5},
+ {0x6DDA, 0xFE00, 0xF94D},
+ {0x6DEA, 0xFE00, 0xF9D6},
+ {0x6DF9, 0xFE00, 0x2F90E},
+ {0x6E1A, 0xFE00, 0xFA46},
+ {0x6E2F, 0xFE00, 0x2F908},
+ {0x6E6E, 0xFE00, 0x2F909},
+ {0x6E9C, 0xFE00, 0xF9CB},
+ {0x6EBA, 0xFE00, 0xF9EC},
+ {0x6EC7, 0xFE00, 0x2F90C},
+ {0x6ECB, 0xFE00, 0xFA99},
+ {0x6ECB, 0xFE01, 0x2F90B},
+ {0x6ED1, 0xFE00, 0xF904},
+ {0x6EDB, 0xFE00, 0xFA98},
+ {0x6F0F, 0xFE00, 0xF94E},
+ {0x6F22, 0xFE00, 0xFA47},
+ {0x6F22, 0xFE01, 0xFA9A},
+ {0x6F23, 0xFE00, 0xF992},
+ {0x6F6E, 0xFE00, 0x2F90F},
+ {0x6FC6, 0xFE00, 0x2F912},
+ {0x6FEB, 0xFE00, 0xF922},
+ {0x6FFE, 0xFE00, 0xF984},
+ {0x701B, 0xFE00, 0x2F915},
+ {0x701E, 0xFE00, 0xFA9B},
+ {0x701E, 0xFE01, 0x2F914},
+ {0x7039, 0xFE00, 0x2F913},
+ {0x704A, 0xFE00, 0x2F917},
+ {0x7070, 0xFE00, 0x2F835},
+ {0x7077, 0xFE00, 0x2F919},
+ {0x707D, 0xFE00, 0x2F918},
+ {0x7099, 0xFE00, 0xF9FB},
+ {0x70AD, 0xFE00, 0x2F91A},
+ {0x70C8, 0xFE00, 0xF99F},
+ {0x70D9, 0xFE00, 0xF916},
+ {0x7145, 0xFE00, 0x2F91C},
+ {0x7149, 0xFE00, 0xF993},
+ {0x716E, 0xFE00, 0xFA48},
+ {0x716E, 0xFE01, 0xFA9C},
+ {0x719C, 0xFE00, 0x2F91E},
+ {0x71CE, 0xFE00, 0xF9C0},
+ {0x71D0, 0xFE00, 0xF9EE},
+ {0x7210, 0xFE00, 0xF932},
+ {0x721B, 0xFE00, 0xF91E},
+ {0x7228, 0xFE00, 0x2F920},
+ {0x722B, 0xFE00, 0xFA49},
+ {0x7235, 0xFE00, 0xFA9E},
+ {0x7235, 0xFE01, 0x2F921},
+ {0x7250, 0xFE00, 0x2F922},
+ {0x7262, 0xFE00, 0xF946},
+ {0x7280, 0xFE00, 0x2F924},
+ {0x7295, 0xFE00, 0x2F925},
+ {0x72AF, 0xFE00, 0xFA9F},
+ {0x72C0, 0xFE00, 0xF9FA},
+ {0x72FC, 0xFE00, 0xF92B},
+ {0x732A, 0xFE00, 0xFA16},
+ {0x732A, 0xFE01, 0xFAA0},
+ {0x7375, 0xFE00, 0xF9A7},
+ {0x737A, 0xFE00, 0x2F928},
+ {0x7387, 0xFE00, 0xF961},
+ {0x7387, 0xFE01, 0xF9DB},
+ {0x738B, 0xFE00, 0x2F929},
+ {0x73A5, 0xFE00, 0x2F92B},
+ {0x73B2, 0xFE00, 0xF9AD},
+ {0x73DE, 0xFE00, 0xF917},
+ {0x7406, 0xFE00, 0xF9E4},
+ {0x7409, 0xFE00, 0xF9CC},
+ {0x7422, 0xFE00, 0xFA4A},
+ {0x7447, 0xFE00, 0x2F92E},
+ {0x745C, 0xFE00, 0x2F92F},
+ {0x7469, 0xFE00, 0xF9AE},
+ {0x7471, 0xFE00, 0xFAA1},
+ {0x7471, 0xFE01, 0x2F930},
+ {0x7485, 0xFE00, 0x2F931},
+ {0x7489, 0xFE00, 0xF994},
+ {0x7498, 0xFE00, 0xF9EF},
+ {0x74CA, 0xFE00, 0x2F932},
+ {0x7506, 0xFE00, 0xFAA2},
+ {0x7524, 0xFE00, 0x2F934},
+ {0x753B, 0xFE00, 0xFAA3},
+ {0x753E, 0xFE00, 0x2F936},
+ {0x7559, 0xFE00, 0xF9CD},
+ {0x7565, 0xFE00, 0xF976},
+ {0x7570, 0xFE00, 0xF962},
+ {0x7570, 0xFE01, 0x2F938},
+ {0x75E2, 0xFE00, 0xF9E5},
+ {0x7610, 0xFE00, 0x2F93A},
+ {0x761D, 0xFE00, 0xFAA4},
+ {0x761F, 0xFE00, 0xFAA5},
+ {0x7642, 0xFE00, 0xF9C1},
+ {0x7669, 0xFE00, 0xF90E},
+ {0x76CA, 0xFE00, 0xFA17},
+ {0x76CA, 0xFE01, 0xFAA6},
+ {0x76DB, 0xFE00, 0xFAA7},
+ {0x76E7, 0xFE00, 0xF933},
+ {0x76F4, 0xFE00, 0xFAA8},
+ {0x76F4, 0xFE01, 0x2F940},
+ {0x7701, 0xFE00, 0xF96D},
+ {0x771E, 0xFE00, 0x2F945},
+ {0x771F, 0xFE00, 0x2F946},
+ {0x771F, 0xFE01, 0x2F947},
+ {0x7740, 0xFE00, 0xFAAA},
+ {0x774A, 0xFE00, 0xFAA9},
+ {0x774A, 0xFE01, 0x2F948},
+ {0x778B, 0xFE00, 0x2F94A},
+ {0x77A7, 0xFE00, 0xFA9D},
+ {0x784E, 0xFE00, 0x2F94E},
+ {0x786B, 0xFE00, 0xF9CE},
+ {0x788C, 0xFE00, 0xF93B},
+ {0x788C, 0xFE01, 0x2F94F},
+ {0x7891, 0xFE00, 0xFA4B},
+ {0x78CA, 0xFE00, 0xF947},
+ {0x78CC, 0xFE00, 0xFAAB},
+ {0x78CC, 0xFE01, 0x2F950},
+ {0x78FB, 0xFE00, 0xF964},
+ {0x792A, 0xFE00, 0xF985},
+ {0x793C, 0xFE00, 0xFA18},
+ {0x793E, 0xFE00, 0xFA4C},
+ {0x7948, 0xFE00, 0xFA4E},
+ {0x7949, 0xFE00, 0xFA4D},
+ {0x7950, 0xFE00, 0xFA4F},
+ {0x7956, 0xFE00, 0xFA50},
+ {0x7956, 0xFE01, 0x2F953},
+ {0x795D, 0xFE00, 0xFA51},
+ {0x795E, 0xFE00, 0xFA19},
+ {0x7965, 0xFE00, 0xFA1A},
+ {0x797F, 0xFE00, 0xF93C},
+ {0x798D, 0xFE00, 0xFA52},
+ {0x798E, 0xFE00, 0xFA53},
+ {0x798F, 0xFE00, 0xFA1B},
+ {0x798F, 0xFE01, 0x2F956},
+ {0x79AE, 0xFE00, 0xF9B6},
+ {0x79CA, 0xFE00, 0xF995},
+ {0x79EB, 0xFE00, 0x2F957},
+ {0x7A1C, 0xFE00, 0xF956},
+ {0x7A40, 0xFE00, 0xFA54},
+ {0x7A40, 0xFE01, 0x2F959},
+ {0x7A4A, 0xFE00, 0x2F95A},
+ {0x7A4F, 0xFE00, 0x2F95B},
+ {0x7A81, 0xFE00, 0xFA55},
+ {0x7AB1, 0xFE00, 0xFAAC},
+ {0x7ACB, 0xFE00, 0xF9F7},
+ {0x7AEE, 0xFE00, 0x2F95F},
+ {0x7B20, 0xFE00, 0xF9F8},
+ {0x7BC0, 0xFE00, 0xFA56},
+ {0x7BC0, 0xFE01, 0xFAAD},
+ {0x7BC6, 0xFE00, 0x2F962},
+ {0x7BC9, 0xFE00, 0x2F963},
+ {0x7C3E, 0xFE00, 0xF9A6},
+ {0x7C60, 0xFE00, 0xF944},
+ {0x7C7B, 0xFE00, 0xFAAE},
+ {0x7C92, 0xFE00, 0xF9F9},
+ {0x7CBE, 0xFE00, 0xFA1D},
+ {0x7CD2, 0xFE00, 0x2F966},
+ {0x7CD6, 0xFE00, 0xFA03},
+ {0x7CE3, 0xFE00, 0x2F969},
+ {0x7CE7, 0xFE00, 0xF97B},
+ {0x7CE8, 0xFE00, 0x2F968},
+ {0x7D00, 0xFE00, 0x2F96A},
+ {0x7D10, 0xFE00, 0xF9CF},
+ {0x7D22, 0xFE00, 0xF96A},
+ {0x7D2F, 0xFE00, 0xF94F},
+ {0x7D5B, 0xFE00, 0xFAAF},
+ {0x7D63, 0xFE00, 0x2F96C},
+ {0x7DA0, 0xFE00, 0xF93D},
+ {0x7DBE, 0xFE00, 0xF957},
+ {0x7DC7, 0xFE00, 0x2F96E},
+ {0x7DF4, 0xFE00, 0xF996},
+ {0x7DF4, 0xFE01, 0xFA57},
+ {0x7DF4, 0xFE02, 0xFAB0},
+ {0x7E02, 0xFE00, 0x2F96F},
+ {0x7E09, 0xFE00, 0xFA58},
+ {0x7E37, 0xFE00, 0xF950},
+ {0x7E41, 0xFE00, 0xFA59},
+ {0x7E45, 0xFE00, 0x2F970},
+ {0x7F3E, 0xFE00, 0xFAB1},
+ {0x7F72, 0xFE00, 0xFA5A},
+ {0x7F79, 0xFE00, 0xF9E6},
+ {0x7F7A, 0xFE00, 0x2F976},
+ {0x7F85, 0xFE00, 0xF90F},
+ {0x7F95, 0xFE00, 0x2F978},
+ {0x7F9A, 0xFE00, 0xF9AF},
+ {0x7FBD, 0xFE00, 0xFA1E},
+ {0x7FFA, 0xFE00, 0x2F979},
+ {0x8001, 0xFE00, 0xF934},
+ {0x8005, 0xFE00, 0xFA5B},
+ {0x8005, 0xFE01, 0xFAB2},
+ {0x8005, 0xFE02, 0x2F97A},
+ {0x8046, 0xFE00, 0xF9B0},
+ {0x8060, 0xFE00, 0x2F97D},
+ {0x806F, 0xFE00, 0xF997},
+ {0x8070, 0xFE00, 0x2F97F},
+ {0x807E, 0xFE00, 0xF945},
+ {0x808B, 0xFE00, 0xF953},
+ {0x80AD, 0xFE00, 0x2F8D6},
+ {0x80B2, 0xFE00, 0x2F982},
+ {0x8103, 0xFE00, 0x2F983},
+ {0x813E, 0xFE00, 0x2F985},
+ {0x81D8, 0xFE00, 0xF926},
+ {0x81E8, 0xFE00, 0xF9F6},
+ {0x81ED, 0xFE00, 0xFA5C},
+ {0x8201, 0xFE00, 0x2F893},
+ {0x8201, 0xFE01, 0x2F98B},
+ {0x8204, 0xFE00, 0x2F98C},
+ {0x8218, 0xFE00, 0xFA6D},
+ {0x826F, 0xFE00, 0xF97C},
+ {0x8279, 0xFE00, 0xFA5D},
+ {0x8279, 0xFE01, 0xFA5E},
+ {0x828B, 0xFE00, 0x2F990},
+ {0x8291, 0xFE00, 0x2F98F},
+ {0x829D, 0xFE00, 0x2F991},
+ {0x82B1, 0xFE00, 0x2F993},
+ {0x82B3, 0xFE00, 0x2F994},
+ {0x82BD, 0xFE00, 0x2F995},
+ {0x82E5, 0xFE00, 0xF974},
+ {0x82E5, 0xFE01, 0x2F998},
+ {0x82E6, 0xFE00, 0x2F996},
+ {0x831D, 0xFE00, 0x2F999},
+ {0x8323, 0xFE00, 0x2F99C},
+ {0x8336, 0xFE00, 0xF9FE},
+ {0x8352, 0xFE00, 0xFAB3},
+ {0x8353, 0xFE00, 0x2F9A0},
+ {0x8363, 0xFE00, 0x2F99A},
+ {0x83AD, 0xFE00, 0x2F99B},
+ {0x83BD, 0xFE00, 0x2F99D},
+ {0x83C9, 0xFE00, 0xF93E},
+ {0x83CA, 0xFE00, 0x2F9A1},
+ {0x83CC, 0xFE00, 0x2F9A2},
+ {0x83DC, 0xFE00, 0x2F9A3},
+ {0x83E7, 0xFE00, 0x2F99E},
+ {0x83EF, 0xFE00, 0xFAB4},
+ {0x83F1, 0xFE00, 0xF958},
+ {0x843D, 0xFE00, 0xF918},
+ {0x8449, 0xFE00, 0xF96E},
+ {0x8457, 0xFE00, 0xFA5F},
+ {0x8457, 0xFE01, 0x2F99F},
+ {0x84EE, 0xFE00, 0xF999},
+ {0x84F1, 0xFE00, 0x2F9A8},
+ {0x84F3, 0xFE00, 0x2F9A9},
+ {0x84FC, 0xFE00, 0xF9C2},
+ {0x8516, 0xFE00, 0x2F9AA},
+ {0x8564, 0xFE00, 0x2F9AC},
+ {0x85CD, 0xFE00, 0xF923},
+ {0x85FA, 0xFE00, 0xF9F0},
+ {0x8606, 0xFE00, 0xF935},
+ {0x8612, 0xFE00, 0xFA20},
+ {0x862D, 0xFE00, 0xF91F},
+ {0x863F, 0xFE00, 0xF910},
+ {0x8650, 0xFE00, 0x2F9B3},
+ {0x865C, 0xFE00, 0xF936},
+ {0x865C, 0xFE01, 0x2F9B4},
+ {0x8667, 0xFE00, 0x2F9B5},
+ {0x8669, 0xFE00, 0x2F9B6},
+ {0x8688, 0xFE00, 0x2F9B8},
+ {0x86A9, 0xFE00, 0x2F9B7},
+ {0x86E2, 0xFE00, 0x2F9BA},
+ {0x870E, 0xFE00, 0x2F9B9},
+ {0x8728, 0xFE00, 0x2F9BC},
+ {0x876B, 0xFE00, 0x2F9BD},
+ {0x8779, 0xFE00, 0xFAB5},
+ {0x8779, 0xFE01, 0x2F9BB},
+ {0x8786, 0xFE00, 0x2F9BE},
+ {0x87BA, 0xFE00, 0xF911},
+ {0x87E1, 0xFE00, 0x2F9C0},
+ {0x8801, 0xFE00, 0x2F9C1},
+ {0x881F, 0xFE00, 0xF927},
+ {0x884C, 0xFE00, 0xFA08},
+ {0x8860, 0xFE00, 0x2F9C3},
+ {0x8863, 0xFE00, 0x2F9C4},
+ {0x88C2, 0xFE00, 0xF9A0},
+ {0x88CF, 0xFE00, 0xF9E7},
+ {0x88D7, 0xFE00, 0x2F9C6},
+ {0x88DE, 0xFE00, 0x2F9C7},
+ {0x88E1, 0xFE00, 0xF9E8},
+ {0x88F8, 0xFE00, 0xF912},
+ {0x88FA, 0xFE00, 0x2F9C9},
+ {0x8910, 0xFE00, 0xFA60},
+ {0x8941, 0xFE00, 0xFAB6},
+ {0x8964, 0xFE00, 0xF924},
+ {0x8986, 0xFE00, 0xFAB7},
+ {0x898B, 0xFE00, 0xFA0A},
+ {0x8996, 0xFE00, 0xFA61},
+ {0x8996, 0xFE01, 0xFAB8},
+ {0x8AA0, 0xFE00, 0x2F9CF},
+ {0x8AAA, 0xFE00, 0xF96F},
+ {0x8AAA, 0xFE01, 0xF9A1},
+ {0x8ABF, 0xFE00, 0xFAB9},
+ {0x8ACB, 0xFE00, 0xFABB},
+ {0x8AD2, 0xFE00, 0xF97D},
+ {0x8AD6, 0xFE00, 0xF941},
+ {0x8AED, 0xFE00, 0xFABE},
+ {0x8AED, 0xFE01, 0x2F9D0},
+ {0x8AF8, 0xFE00, 0xFA22},
+ {0x8AF8, 0xFE01, 0xFABA},
+ {0x8AFE, 0xFE00, 0xF95D},
+ {0x8AFE, 0xFE01, 0xFABD},
+ {0x8B01, 0xFE00, 0xFA62},
+ {0x8B01, 0xFE01, 0xFABC},
+ {0x8B39, 0xFE00, 0xFA63},
+ {0x8B39, 0xFE01, 0xFABF},
+ {0x8B58, 0xFE00, 0xF9FC},
+ {0x8B80, 0xFE00, 0xF95A},
+ {0x8B8A, 0xFE00, 0xFAC0},
+ {0x8B8A, 0xFE01, 0x2F9D1},
+ {0x8C48, 0xFE00, 0xF900},
+ {0x8C55, 0xFE00, 0x2F9D2},
+ {0x8CAB, 0xFE00, 0x2F9D4},
+ {0x8CC1, 0xFE00, 0x2F9D5},
+ {0x8CC2, 0xFE00, 0xF948},
+ {0x8CC8, 0xFE00, 0xF903},
+ {0x8CD3, 0xFE00, 0xFA64},
+ {0x8D08, 0xFE00, 0xFA65},
+ {0x8D08, 0xFE01, 0xFAC1},
+ {0x8D1B, 0xFE00, 0x2F9D6},
+ {0x8D77, 0xFE00, 0x2F9D7},
+ {0x8DBC, 0xFE00, 0x2F9DB},
+ {0x8DCB, 0xFE00, 0x2F9DA},
+ {0x8DEF, 0xFE00, 0xF937},
+ {0x8DF0, 0xFE00, 0x2F9DC},
+ {0x8ECA, 0xFE00, 0xF902},
+ {0x8ED4, 0xFE00, 0x2F9DE},
+ {0x8F26, 0xFE00, 0xF998},
+ {0x8F2A, 0xFE00, 0xF9D7},
+ {0x8F38, 0xFE00, 0xFAC2},
+ {0x8F38, 0xFE01, 0x2F9DF},
+ {0x8F3B, 0xFE00, 0xFA07},
+ {0x8F62, 0xFE00, 0xF98D},
+ {0x8F9E, 0xFE00, 0x2F98D},
+ {0x8FB0, 0xFE00, 0xF971},
+ {0x8FB6, 0xFE00, 0xFA66},
+ {0x9023, 0xFE00, 0xF99A},
+ {0x9038, 0xFE00, 0xFA25},
+ {0x9038, 0xFE01, 0xFA67},
+ {0x9072, 0xFE00, 0xFAC3},
+ {0x907C, 0xFE00, 0xF9C3},
+ {0x908F, 0xFE00, 0xF913},
+ {0x9094, 0xFE00, 0x2F9E2},
+ {0x90CE, 0xFE00, 0xF92C},
+ {0x90DE, 0xFE00, 0xFA2E},
+ {0x90F1, 0xFE00, 0x2F9E3},
+ {0x90FD, 0xFE00, 0xFA26},
+ {0x9111, 0xFE00, 0x2F9E4},
+ {0x911B, 0xFE00, 0x2F9E6},
+ {0x916A, 0xFE00, 0xF919},
+ {0x9199, 0xFE00, 0xFAC4},
+ {0x91B4, 0xFE00, 0xF9B7},
+ {0x91CC, 0xFE00, 0xF9E9},
+ {0x91CF, 0xFE00, 0xF97E},
+ {0x91D1, 0xFE00, 0xF90A},
+ {0x9234, 0xFE00, 0xF9B1},
+ {0x9238, 0xFE00, 0x2F9E7},
+ {0x9276, 0xFE00, 0xFAC5},
+ {0x927C, 0xFE00, 0x2F9EA},
+ {0x92D7, 0xFE00, 0x2F9E8},
+ {0x92D8, 0xFE00, 0x2F9E9},
+ {0x9304, 0xFE00, 0xF93F},
+ {0x934A, 0xFE00, 0xF99B},
+ {0x93F9, 0xFE00, 0x2F9EB},
+ {0x9415, 0xFE00, 0x2F9EC},
+ {0x958B, 0xFE00, 0x2F9EE},
+ {0x95AD, 0xFE00, 0xF986},
+ {0x95B7, 0xFE00, 0x2F9F0},
+ {0x962E, 0xFE00, 0xF9C6},
+ {0x964B, 0xFE00, 0xF951},
+ {0x964D, 0xFE00, 0xFA09},
+ {0x9675, 0xFE00, 0xF959},
+ {0x9678, 0xFE00, 0xF9D3},
+ {0x967C, 0xFE00, 0xFAC6},
+ {0x9686, 0xFE00, 0xF9DC},
+ {0x96A3, 0xFE00, 0xF9F1},
+ {0x96B7, 0xFE00, 0xFA2F},
+ {0x96B8, 0xFE00, 0xF9B8},
+ {0x96C3, 0xFE00, 0x2F9F3},
+ {0x96E2, 0xFE00, 0xF9EA},
+ {0x96E3, 0xFE00, 0xFA68},
+ {0x96E3, 0xFE01, 0xFAC7},
+ {0x96F6, 0xFE00, 0xF9B2},
+ {0x96F7, 0xFE00, 0xF949},
+ {0x9723, 0xFE00, 0x2F9F5},
+ {0x9732, 0xFE00, 0xF938},
+ {0x9748, 0xFE00, 0xF9B3},
+ {0x9756, 0xFE00, 0xFA1C},
+ {0x9756, 0xFE01, 0xFAC8},
+ {0x97DB, 0xFE00, 0xFAC9},
+ {0x97E0, 0xFE00, 0x2F9FA},
+ {0x97FF, 0xFE00, 0xFA69},
+ {0x97FF, 0xFE01, 0xFACA},
+ {0x980B, 0xFE00, 0xFACB},
+ {0x980B, 0xFE01, 0x2F9FE},
+ {0x980B, 0xFE02, 0x2F9FF},
+ {0x9818, 0xFE00, 0xF9B4},
+ {0x9829, 0xFE00, 0x2FA00},
+ {0x983B, 0xFE00, 0xFA6A},
+ {0x983B, 0xFE01, 0xFACC},
+ {0x985E, 0xFE00, 0xF9D0},
+ {0x98E2, 0xFE00, 0x2FA02},
+ {0x98EF, 0xFE00, 0xFA2A},
+ {0x98FC, 0xFE00, 0xFA2B},
+ {0x9928, 0xFE00, 0xFA2C},
+ {0x9929, 0xFE00, 0x2FA04},
+ {0x99A7, 0xFE00, 0x2FA05},
+ {0x99C2, 0xFE00, 0x2FA06},
+ {0x99F1, 0xFE00, 0xF91A},
+ {0x99FE, 0xFE00, 0x2FA07},
+ {0x9A6A, 0xFE00, 0xF987},
+ {0x9B12, 0xFE00, 0xFACD},
+ {0x9B12, 0xFE01, 0x2FA0A},
+ {0x9B6F, 0xFE00, 0xF939},
+ {0x9C40, 0xFE00, 0x2FA0B},
+ {0x9C57, 0xFE00, 0xF9F2},
+ {0x9CFD, 0xFE00, 0x2FA0C},
+ {0x9D67, 0xFE00, 0x2FA0F},
+ {0x9DB4, 0xFE00, 0xFA2D},
+ {0x9DFA, 0xFE00, 0xF93A},
+ {0x9E1E, 0xFE00, 0xF920},
+ {0x9E7F, 0xFE00, 0xF940},
+ {0x9E97, 0xFE00, 0xF988},
+ {0x9E9F, 0xFE00, 0xF9F3},
+ {0x9EBB, 0xFE00, 0x2FA15},
+ {0x9ECE, 0xFE00, 0xF989},
+ {0x9EF9, 0xFE00, 0x2FA17},
+ {0x9EFE, 0xFE00, 0x2FA18},
+ {0x9F05, 0xFE00, 0x2FA19},
+ {0x9F0F, 0xFE00, 0x2FA1A},
+ {0x9F16, 0xFE00, 0x2FA1B},
+ {0x9F3B, 0xFE00, 0x2FA1C},
+ {0x9F43, 0xFE00, 0xFAD8},
+ {0x9F8D, 0xFE00, 0xF9C4},
+ {0x9F8E, 0xFE00, 0xFAD9},
+ {0x9F9C, 0xFE00, 0xF907},
+ {0x9F9C, 0xFE01, 0xF908},
+ {0x9F9C, 0xFE02, 0xFACE},
+ {0x20122, 0xFE00, 0x2F803},
+ {0x2051C, 0xFE00, 0x2F812},
+ {0x20525, 0xFE00, 0x2F91B},
+ {0x2054B, 0xFE00, 0x2F816},
+ {0x2063A, 0xFE00, 0x2F80D},
+ {0x20804, 0xFE00, 0x2F9D9},
+ {0x208DE, 0xFE00, 0x2F9DD},
+ {0x20A2C, 0xFE00, 0x2F834},
+ {0x20B63, 0xFE00, 0x2F838},
+ {0x214E4, 0xFE00, 0x2F859},
+ {0x216A8, 0xFE00, 0x2F860},
+ {0x216EA, 0xFE00, 0x2F861},
+ {0x219C8, 0xFE00, 0x2F86C},
+ {0x21B18, 0xFE00, 0x2F871},
+ {0x21D0B, 0xFE00, 0x2F8F8},
+ {0x21DE4, 0xFE00, 0x2F87B},
+ {0x21DE6, 0xFE00, 0x2F87D},
+ {0x22183, 0xFE00, 0x2F889},
+ {0x2219F, 0xFE00, 0x2F939},
+ {0x22331, 0xFE00, 0x2F891},
+ {0x22331, 0xFE01, 0x2F892},
+ {0x226D4, 0xFE00, 0x2F8A4},
+ {0x22844, 0xFE00, 0xFAD0},
+ {0x2284A, 0xFE00, 0xFACF},
+ {0x22B0C, 0xFE00, 0x2F8B8},
+ {0x22BF1, 0xFE00, 0x2F8BE},
+ {0x2300A, 0xFE00, 0x2F8CA},
+ {0x232B8, 0xFE00, 0x2F897},
+ {0x2335F, 0xFE00, 0x2F980},
+ {0x23393, 0xFE00, 0x2F989},
+ {0x2339C, 0xFE00, 0x2F98A},
+ {0x233C3, 0xFE00, 0x2F8DD},
+ {0x233D5, 0xFE00, 0xFAD1},
+ {0x2346D, 0xFE00, 0x2F8E3},
+ {0x236A3, 0xFE00, 0x2F8EC},
+ {0x238A7, 0xFE00, 0x2F8F0},
+ {0x23A8D, 0xFE00, 0x2F8F7},
+ {0x23AFA, 0xFE00, 0x2F8F9},
+ {0x23CBC, 0xFE00, 0x2F8FB},
+ {0x23D1E, 0xFE00, 0x2F906},
+ {0x23ED1, 0xFE00, 0x2F90D},
+ {0x23F5E, 0xFE00, 0x2F910},
+ {0x23F8E, 0xFE00, 0x2F911},
+ {0x24263, 0xFE00, 0x2F91D},
+ {0x242EE, 0xFE00, 0xFA6C},
+ {0x243AB, 0xFE00, 0x2F91F},
+ {0x24608, 0xFE00, 0x2F923},
+ {0x24735, 0xFE00, 0x2F926},
+ {0x24814, 0xFE00, 0x2F927},
+ {0x24C36, 0xFE00, 0x2F935},
+ {0x24C92, 0xFE00, 0x2F937},
+ {0x24FA1, 0xFE00, 0x2F93B},
+ {0x24FB8, 0xFE00, 0x2F93C},
+ {0x25044, 0xFE00, 0x2F93D},
+ {0x250F2, 0xFE00, 0x2F942},
+ {0x250F3, 0xFE00, 0x2F941},
+ {0x25119, 0xFE00, 0x2F943},
+ {0x25133, 0xFE00, 0x2F944},
+ {0x25249, 0xFE00, 0xFAD5},
+ {0x2541D, 0xFE00, 0x2F94D},
+ {0x25626, 0xFE00, 0x2F952},
+ {0x2569A, 0xFE00, 0x2F954},
+ {0x256C5, 0xFE00, 0x2F955},
+ {0x2597C, 0xFE00, 0x2F95C},
+ {0x25AA7, 0xFE00, 0x2F95D},
+ {0x25AA7, 0xFE01, 0x2F95E},
+ {0x25BAB, 0xFE00, 0x2F961},
+ {0x25C80, 0xFE00, 0x2F965},
+ {0x25CD0, 0xFE00, 0xFAD6},
+ {0x25F86, 0xFE00, 0x2F96B},
+ {0x261DA, 0xFE00, 0x2F898},
+ {0x26228, 0xFE00, 0x2F972},
+ {0x26247, 0xFE00, 0x2F973},
+ {0x262D9, 0xFE00, 0x2F975},
+ {0x2633E, 0xFE00, 0x2F977},
+ {0x264DA, 0xFE00, 0x2F97B},
+ {0x26523, 0xFE00, 0x2F97C},
+ {0x265A8, 0xFE00, 0x2F97E},
+ {0x267A7, 0xFE00, 0x2F987},
+ {0x267B5, 0xFE00, 0x2F988},
+ {0x26B3C, 0xFE00, 0x2F997},
+ {0x26C36, 0xFE00, 0x2F9A4},
+ {0x26CD5, 0xFE00, 0x2F9A6},
+ {0x26D6B, 0xFE00, 0x2F9A5},
+ {0x26F2C, 0xFE00, 0x2F9AD},
+ {0x26FB1, 0xFE00, 0x2F9B0},
+ {0x270D2, 0xFE00, 0x2F9B1},
+ {0x273CA, 0xFE00, 0x2F9AB},
+ {0x27667, 0xFE00, 0x2F9C5},
+ {0x278AE, 0xFE00, 0x2F9CB},
+ {0x27966, 0xFE00, 0x2F9CC},
+ {0x27CA8, 0xFE00, 0x2F9D3},
+ {0x27ED3, 0xFE00, 0xFAD7},
+ {0x27F2F, 0xFE00, 0x2F9D8},
+ {0x285D2, 0xFE00, 0x2F9E0},
+ {0x285ED, 0xFE00, 0x2F9E1},
+ {0x2872E, 0xFE00, 0x2F9E5},
+ {0x28BFA, 0xFE00, 0x2F9ED},
+ {0x28D77, 0xFE00, 0x2F9F1},
+ {0x29145, 0xFE00, 0x2F9F6},
+ {0x291DF, 0xFE00, 0x2F81C},
+ {0x2921A, 0xFE00, 0x2F9F7},
+ {0x2940A, 0xFE00, 0x2F9FB},
+ {0x29496, 0xFE00, 0x2F9FD},
+ {0x295B6, 0xFE00, 0x2FA01},
+ {0x29B30, 0xFE00, 0x2FA09},
+ {0x2A0CE, 0xFE00, 0x2FA10},
+ {0x2A105, 0xFE00, 0x2FA12},
+ {0x2A20E, 0xFE00, 0x2FA13},
+ {0x2A291, 0xFE00, 0x2FA14},
+ {0x2A392, 0xFE00, 0x2F88F},
+ {0x2A600, 0xFE00, 0x2FA1D},
+ /* Must be sorted. */
+ };
+ static const size_t CJK_compatibility_ideographs_count
+ = sizeof(CJK_compatibility_ideographs)
+ / sizeof(CJK_compatibility_ideographs[0]);
+
+ size_t lower = 0;
+ size_t upper = CJK_compatibility_ideographs_count;
+
+ while (lower < upper) {
+ size_t middle = (lower + upper) / 2;
+ int32_t u = CJK_compatibility_ideographs[middle][0];
+ int32_t v = CJK_compatibility_ideographs[middle][1];
+ if (ucv == u && uvs == v) {
+ return CJK_compatibility_ideographs[middle][2];
+ } else if (ucv < u || (ucv == u && uvs < v)) {
+ upper = middle;
+ } else if (ucv > u || (ucv == u && uvs > v)) {
+ lower = middle + 1;
+ }
+ }
+ return -1;
+}
diff --git a/Build/source/texk/dvipdfm-x/unicode.h b/Build/source/texk/dvipdfm-x/unicode.h
index 3df04e28a04..f10a56e0ced 100644
--- a/Build/source/texk/dvipdfm-x/unicode.h
+++ b/Build/source/texk/dvipdfm-x/unicode.h
@@ -32,4 +32,6 @@ extern int32_t UC_UTF16BE_decode_char (const unsigned char **pp, const unsigned
extern int32_t UC_UTF8_decode_char (const unsigned char **pp, const unsigned char *endptr);
extern size_t UC_UTF8_encode_char (int32_t ucv, unsigned char **dstpp, unsigned char *endptr);
+extern int32_t UC_Combine_CJK_compatibility_ideograph(int32_t ucv, int32_t uvs);
+
#endif /* _UNICODE_H_ */