summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/libs/README2
-rw-r--r--Build/source/libs/harfbuzz/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/Makefile.am1
-rw-r--r--Build/source/libs/harfbuzz/Makefile.in3
-rw-r--r--Build/source/libs/harfbuzz/TLpatches/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/TLpatches/TL-Changes2
-rwxr-xr-xBuild/source/libs/harfbuzz/configure24
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/CONFIG.md3
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog246
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/NEWS7
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/configure.ac2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py88
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh5
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-bimap.hh139
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.hh4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff-common.hh62
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff1-table.hh12
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-vorg-table.hh128
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.cc10
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.hh38
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff1.cc24
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff2.cc29
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd-table.hh2834
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd.cc61
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/test-buffer-serialize.cc4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/test-gpos-size-params.cc13
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/test-gsub-would-substitute.cc4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-color.cc9
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-name.cc4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/test.cc4
-rw-r--r--Build/source/libs/harfbuzz/version.ac2
39 files changed, 2855 insertions, 938 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index aa9cc32969e..ad4a5d25418 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -25,7 +25,7 @@ graphite2 1.3.13 - checked 21dec18
http://sourceforge.net/projects/silgraphite/files/graphite2/
(requires C++11)
-harfbuzz 2.5.2 - checked 21jun19
+harfbuzz 2.5.3 - checked 27jun19
http://www.freedesktop.org/software/harfbuzz/release/
icu 63.1 - checked 8jan19
diff --git a/Build/source/libs/harfbuzz/ChangeLog b/Build/source/libs/harfbuzz/ChangeLog
index ad59f2cfcea..bbb2ea47788 100644
--- a/Build/source/libs/harfbuzz/ChangeLog
+++ b/Build/source/libs/harfbuzz/ChangeLog
@@ -1,3 +1,8 @@
+2019-06-27 Akira Kakuto <kakuto@w32tex.org>
+
+ Import harfbuzz-2.5.3.
+ * version.ac, Makefile.am: Adjusted.
+
2019-06-21 Akira Kakuto <kakuto@w32tex.org>
Import harfbuzz-2.5.2.
diff --git a/Build/source/libs/harfbuzz/Makefile.am b/Build/source/libs/harfbuzz/Makefile.am
index 8194a0d8abf..ed994d10d3c 100644
--- a/Build/source/libs/harfbuzz/Makefile.am
+++ b/Build/source/libs/harfbuzz/Makefile.am
@@ -33,6 +33,7 @@ libharfbuzz_dependencies =
libharfbuzz_a_SOURCES = \
@HARFBUZZ_TREE@/src/hb-algs.hh \
@HARFBUZZ_TREE@/src/hb-atomic.hh \
+ @HARFBUZZ_TREE@/src/hb-bimap.hh \
@HARFBUZZ_TREE@/src/hb-blob.hh \
@HARFBUZZ_TREE@/src/hb-blob.cc \
@HARFBUZZ_TREE@/src/hb-buffer.hh \
diff --git a/Build/source/libs/harfbuzz/Makefile.in b/Build/source/libs/harfbuzz/Makefile.in
index f3dc800db89..4dfc7a47ee6 100644
--- a/Build/source/libs/harfbuzz/Makefile.in
+++ b/Build/source/libs/harfbuzz/Makefile.in
@@ -707,7 +707,8 @@ AM_CPPFLAGS = -DHB_NO_MT -DHAVE_FALLBACK=1 \
libharfbuzz_dependencies = $(GRAPHITE2_DEPEND)
libharfbuzz_a_SOURCES = @HARFBUZZ_TREE@/src/hb-algs.hh \
@HARFBUZZ_TREE@/src/hb-atomic.hh \
- @HARFBUZZ_TREE@/src/hb-blob.hh @HARFBUZZ_TREE@/src/hb-blob.cc \
+ @HARFBUZZ_TREE@/src/hb-bimap.hh @HARFBUZZ_TREE@/src/hb-blob.hh \
+ @HARFBUZZ_TREE@/src/hb-blob.cc \
@HARFBUZZ_TREE@/src/hb-buffer.hh \
@HARFBUZZ_TREE@/src/hb-buffer-serialize.cc \
@HARFBUZZ_TREE@/src/hb-buffer.cc \
diff --git a/Build/source/libs/harfbuzz/TLpatches/ChangeLog b/Build/source/libs/harfbuzz/TLpatches/ChangeLog
index 5c56265b8c9..5426cade611 100644
--- a/Build/source/libs/harfbuzz/TLpatches/ChangeLog
+++ b/Build/source/libs/harfbuzz/TLpatches/ChangeLog
@@ -1,3 +1,8 @@
+2019-06-27 Akira Kakuto <kakuto@w32tex.org>
+
+ Imported harfbuzz-2.5.3 source tree from:
+ http://www.freedesktop.org/software/harfbuzz/release/
+
2019-06-21 Akira Kakuto <kakuto@w32tex.org>
Imported harfbuzz-2.5.2 source tree from:
diff --git a/Build/source/libs/harfbuzz/TLpatches/TL-Changes b/Build/source/libs/harfbuzz/TLpatches/TL-Changes
index 55620760385..b05e9ef85b2 100644
--- a/Build/source/libs/harfbuzz/TLpatches/TL-Changes
+++ b/Build/source/libs/harfbuzz/TLpatches/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the harfbuzz-2.5.2/ tree as obtained from:
+Changes applied to the harfbuzz-2.5.3/ tree as obtained from:
http://www.freedesktop.org/software/harfbuzz/release/
Removed:
diff --git a/Build/source/libs/harfbuzz/configure b/Build/source/libs/harfbuzz/configure
index 218caea4f6e..097947704cf 100755
--- a/Build/source/libs/harfbuzz/configure
+++ b/Build/source/libs/harfbuzz/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 2.5.2.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 2.5.3.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='harfbuzz (TeX Live)'
PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='2.5.2'
-PACKAGE_STRING='harfbuzz (TeX Live) 2.5.2'
+PACKAGE_VERSION='2.5.3'
+PACKAGE_STRING='harfbuzz (TeX Live) 2.5.3'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
@@ -1311,7 +1311,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 harfbuzz (TeX Live) 2.5.2 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 2.5.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1382,7 +1382,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of harfbuzz (TeX Live) 2.5.2:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 2.5.3:";;
esac
cat <<\_ACEOF
@@ -1487,7 +1487,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-harfbuzz (TeX Live) configure 2.5.2
+harfbuzz (TeX Live) configure 2.5.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2123,7 +2123,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 harfbuzz (TeX Live) $as_me 2.5.2, which was
+It was created by harfbuzz (TeX Live) $as_me 2.5.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4047,7 +4047,7 @@ fi
# Define the identity of the package.
PACKAGE='harfbuzz--tex-live-'
- VERSION='2.5.2'
+ VERSION='2.5.3'
# Some tools Automake needs.
@@ -4241,8 +4241,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags
HB_VERSION_MAJOR=2
HB_VERSION_MINOR=5
-HB_VERSION_MICRO=2
-HB_VERSION=2.5.2
+HB_VERSION_MICRO=3
+HB_VERSION=2.5.3
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -7919,7 +7919,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 harfbuzz (TeX Live) $as_me 2.5.2, which was
+This file was extended by harfbuzz (TeX Live) $as_me 2.5.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7985,7 +7985,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-harfbuzz (TeX Live) config.status 2.5.2
+harfbuzz (TeX Live) config.status 2.5.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/CONFIG.md b/Build/source/libs/harfbuzz/harfbuzz-src/CONFIG.md
index 98be0363e69..5fb3e7cb455 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/CONFIG.md
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/CONFIG.md
@@ -109,7 +109,8 @@ The pre-defined configurations are:
as esoteric or rarely-used shaping features. See the definition for details.
* `HB_TINY`: Enables both `HB_MINI` and `HB_LEAN` configurations, as well as
- disabling thread-safety and debugging, and use size-optimized data tables.
+ disabling thread-safety and debugging, and use even more size-optimized data
+ tables.
## Tailoring configuration
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
index 1280bfa50c7..6236f500102 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
@@ -1,3 +1,249 @@
+commit b14e413fae8f14b75c5956e9b38e413c878ded0c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 26 10:44:10 2019 -0700
+
+ 2.5.3
+
+ NEWS | 7 +++++++
+ configure.ac | 2 +-
+ src/hb-version.h | 4 ++--
+ 3 files changed, 10 insertions(+), 3 deletions(-)
+
+commit 3bfa878c98cceeaae074d81c14329e358bea8912
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Jun 25 19:07:07 2019 -0700
+
+ [gen-ucd] Protect against accidents like previous commit
+
+ https://github.com/harfbuzz/harfbuzz/pull/1796
+
+ src/gen-ucd-table.py | 24 +++++++++++-------------
+ 1 file changed, 11 insertions(+), 13 deletions(-)
+
+commit f4ea1a9afb4849e7cfb7a5eb9e81e4f656c3f89e
+Author: David Corbett <corbett.dav@husky.neu.edu>
+Date: Tue Jun 25 21:08:14 2019 -0400
+
+ [ucd] Include scripts added in Unicode 10 or later
+
+ src/gen-ucd-table.py | 2 +-
+ src/hb-ucd-table.hh | 970 +++++++++++++++++++++++++++------------------------
+ 2 files changed, 511 insertions(+), 461 deletions(-)
+
+commit 10bd6b8d913a57260b35c1ef830db37c06eebd18
+Author: Michiharu Ariza <ariza@typekit.com>
+Date: Thu Jun 20 16:22:08 2019 -0700
+
+ minor
+
+ src/hb-bimap.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f3ee2bd020f8ca313fae783cc49a374f1377e877
+Author: Michiharu Ariza <ariza@typekit.com>
+Date: Thu Jun 20 14:33:09 2019 -0700
+
+ add ops & methods to hb_bimap_t making it more like hb_map_t
+ moved has () to hb_bimap_t from hb_inc_bimap_t
+ moved identity () to hb_inc_bimap_t
+ removed forward()
+
+ src/hb-bimap.hh | 38 ++++++++++++++++++++++++--------------
+ src/hb-ot-cff-common.hh | 2 +-
+ src/hb-ot-cff1-table.hh | 4 ++--
+ src/hb-subset-cff-common.cc | 2 +-
+ src/hb-subset-cff-common.hh | 4 ++--
+ src/hb-subset-cff1.cc | 4 ++--
+ src/hb-subset-cff2.cc | 2 +-
+ 7 files changed, 33 insertions(+), 23 deletions(-)
+
+commit 094966959f96d9a41fb612fd0b870f5ae8f5a954
+Author: Michiharu Ariza <ariza@adobe.com>
+Date: Mon Jun 17 22:12:40 2019 -0700
+
+ add hb_bimap_t, subclass hb_inc_bimap_t replacing CFF::remap_t
+
+ src/Makefile.sources | 1 +
+ src/hb-bimap.hh | 129 ++++++++++++++++++++++++++++++++++++++++++++
+ src/hb-ot-cff-common.hh | 64 +++-------------------
+ src/hb-ot-cff1-table.hh | 16 +++---
+ src/hb-subset-cff-common.cc | 12 ++---
+ src/hb-subset-cff-common.hh | 40 ++++++--------
+ src/hb-subset-cff1.cc | 26 ++++-----
+ src/hb-subset-cff2.cc | 31 +++++------
+ 8 files changed, 191 insertions(+), 128 deletions(-)
+
+commit 0660175dc82d82bbb38c45b9cb53190e06f55750
+Author: David Corbett <corbett.dav@husky.neu.edu>
+Date: Tue Jun 25 10:14:03 2019 -0400
+
+ Categorize U+1133B for use in Tamil
+
+ src/hb-ot-shape-complex-indic.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit fb0df17b2701c1c5623198440aa88a676985bd4f
+Author: David Corbett <corbett.dav@husky.neu.edu>
+Date: Mon Jun 24 21:54:26 2019 -0400
+
+ Correct "nonunihan" to "nounihan"
+
+ src/gen-ucd-table.py | 4 ++--
+ src/hb-ucd-table.hh | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit bb4cdf8e0bcc98a036c22cfd44242502b107fb32
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Tue Jun 25 01:42:42 2019 +0430
+
+ Replace create_from_file with empty blob if HB_NO_OPEN is defined
+
+ src/main.cc | 4 ++++
+ src/test-buffer-serialize.cc | 4 ++++
+ src/test-gpos-size-params.cc | 4 ++++
+ src/test-gsub-would-substitute.cc | 4 ++++
+ src/test-ot-color.cc | 4 ++++
+ src/test-ot-name.cc | 4 ++++
+ src/test.cc | 4 ++++
+ 7 files changed, 28 insertions(+)
+
+commit ccf1448238c91da3cba8370ee527229013f6d362
+Author: GaryQian <garyq@google.com>
+Date: Mon Jun 24 12:57:13 2019 -0700
+
+ Cast long->size_t to ensure comparison of similar types
+
+ src/hb-common.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ec8e635e0c1a8e5c631a90820be68cf07c52c1a0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 24 12:37:23 2019 -0700
+
+ [ucd] Use custom encoding to shrink composition data
+
+ Saves another 2.5kb.
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/1652
+
+ src/gen-ucd-table.py | 22 +-
+ src/hb-algs.hh | 5 +
+ src/hb-ucd-table.hh | 963 ++++++++++++++++++++++++++++++++++-----------------
+ src/hb-ucd.cc | 49 ++-
+ 4 files changed, 704 insertions(+), 335 deletions(-)
+
+commit 9c933acaa443889bc2484dbe3ef3e990b299cd52
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Jun 23 17:14:27 2019 -0700
+
+ [ucd] Save a few more bytes
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/1652
+
+ src/gen-ucd-table.py | 11 ++++++-----
+ src/hb-ucd-table.hh | 34 +++++++++++++++++-----------------
+ src/hb-ucd.cc | 12 ++++++------
+ 3 files changed, 29 insertions(+), 28 deletions(-)
+
+commit 9bd8d66c2ba97aec57597ff85e059a7618260a1c
+Author: Qunxin Liu <qxliu@google.com>
+Date: Wed Jun 12 11:02:48 2019 -0700
+
+ [subset] VORG table to use _subset2 method and new iterator frameworks
+
+ src/hb-ot-vorg-table.hh | 128 ++++++++++++++----------------------------------
+ src/hb-subset.cc | 2 +-
+ 2 files changed, 39 insertions(+), 91 deletions(-)
+
+commit 8062979990d348671b465c877e4dd672e1337665
+Merge: ad97ec95 c2d7dfc6
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Sun Jun 23 11:19:48 2019 +0430
+
+ Merge pull request #1788 from jameshilliard/configure-svg
+
+ Add missing cairo-svg dependency to test-ot-color
+
+commit c2d7dfc68ffcb389c9f73b5ef94da7b270bdcf9e
+Author: James Hilliard <james.hilliard1@gmail.com>
+Date: Sat Jun 22 19:38:48 2019 -0600
+
+ Add missing cairo-svg dependency to test-ot-color
+
+ src/test-ot-color.cc | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit ad97ec95019b1e5170d00953d4dfe392cfb4abb0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 21 00:44:29 2019 -0700
+
+ [config/ucd] Add HB_NO_UNICODE_UNASSIGNED and activate in HB_TINY
+
+ Saves another 12kb:
+
+ $ python ./gen-ucd-table.py ucd.nounihan.grouped.zip > hb-ucd-table.hh && make -j5 CPPFLAGS='-Os -DHB_TINY' -C ~/hb/build/src/ && size ~/hb/build/src/.libs/libharfbuzz_la-hb-ucd.o
+ INFO: Loading UCDXML...
+ INFO: Preparing data tables...
+ INFO: Generating output...
+ INFO: Compression=1:
+ INFO: Dataset=gc FullCost=18612
+ INFO: Dataset=ccc FullCost=3550
+ INFO: Dataset=bmg FullCost=1548
+ INFO: Dataset=sc FullCost=17765
+ INFO: Dataset=dm FullCost=13325
+ INFO: Compression=3:
+ INFO: Dataset=gc FullCost=10726
+ INFO: Dataset=ccc FullCost=2389
+ INFO: Dataset=bmg FullCost=1052
+ INFO: Dataset=sc FullCost=13669
+ INFO: Dataset=dm FullCost=7780
+ INFO: Compression=5:
+ INFO: Dataset=gc FullCost=8274
+ INFO: Dataset=ccc FullCost=2055
+ INFO: Dataset=bmg FullCost=908
+ INFO: Dataset=sc FullCost=4073
+ INFO: Dataset=dm FullCost=7780
+ INFO: Done.
+
+ Part of https://github.com/harfbuzz/harfbuzz/issues/1652
+
+ CONFIG.md | 3 +-
+ src/gen-ucd-table.py | 27 +-
+ src/hb-config.hh | 1 +
+ src/hb-ucd-table.hh | 1161 +++++++++++++++++++++++++++++++++++++++++++++++++-
+ 4 files changed, 1185 insertions(+), 7 deletions(-)
+
+commit ccea7fa119d139b6a3a429b3b81fac8448f3bab1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 21 00:42:06 2019 -0700
+
+ [config] Make test build under HB_TINY
+
+ src/test-gpos-size-params.cc | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit 12cec6c12ec1856e483097e702126214dd25a34a
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date: Fri Jun 21 22:39:42 2019 +0430
+
+ Don't define hb_blob_create_from_file if HB_NO_OPEN is defined
+
+ src/hb-blob.cc | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 7f3b409e85897ff267f1b6a5ce1b5cdafbfe7afe
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jun 20 14:24:43 2019 -0700
+
+ Fix build with -O0
+
+ message_impl was not defined. That causes trouble if compiler didn't
+ optimize the unreachable call out...
+
+ src/hb-buffer.cc | 1 -
+ src/hb-buffer.hh | 4 ++++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
commit 6b44bf85382146b355a5a3cbbfde48166721ce52
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jun 20 11:57:19 2019 -0700
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
index 0835378a155..20bb21ba250 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
@@ -1,3 +1,10 @@
+Overview of changes leading to 2.5.3
+Wednesday, June 26, 2019
+====================================
+- Fix UCD script data for Unicode 10+ scripts. This was broken since 2.5.0.
+- More optimizations for HB_TINY.
+
+
Overview of changes leading to 2.5.2
Thursday, June 20, 2019
====================================
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
index 426b8503845..0dc672a8163 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [2.5.2],
+ [2.5.3],
[https://github.com/harfbuzz/harfbuzz/issues/new],
[harfbuzz],
[http://harfbuzz.org/])
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources b/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources
index ab228ce7e96..6f42ba3dccd 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources
@@ -44,6 +44,7 @@ HB_BASE_sources = \
hb-machinery.hh \
hb-map.cc \
hb-map.hh \
+ hb-bimap.hh \
hb-meta.hh \
hb-mutex.hh \
hb-null.hh \
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py b/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py
index c98c715e112..a152375dd78 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py
@@ -7,7 +7,7 @@ import logging
logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
if len (sys.argv) != 2:
- print("usage: ./gen-ucd-table ucd.nonunihan.grouped.xml", file=sys.stderr)
+ print("usage: ./gen-ucd-table ucd.nounihan.grouped.xml", file=sys.stderr)
sys.exit(1)
# https://github.com/harfbuzz/packtab
@@ -34,44 +34,53 @@ ce = {i for i,u in enumerate(ucd) if u['Comp_Ex'] == 'Y'}
assert not any(v for v in dm.values() if len(v) not in (1,2))
dm1 = sorted(set(v for v in dm.values() if len(v) == 1))
-dm1_u16_array = ['0x%04Xu' % v for v in dm1 if v[0] <= 0xFFFF]
-dm1_u32_array = ['0x%04Xu' % v for v in dm1 if v[0] > 0xFFFF]
+assert all((v[0] >> 16) in (0,2) for v in dm1)
+dm1_p0_array = ['0x%04Xu' % (v[0] & 0xFFFF) for v in dm1 if (v[0] >> 16) == 0]
+dm1_p2_array = ['0x%04Xu' % (v[0] & 0xFFFF) for v in dm1 if (v[0] >> 16) == 2]
dm1_order = {v:i+1 for i,v in enumerate(dm1)}
-dm2 = sorted((v, i) for i,v in dm.items() if len(v) == 2)
-dm2 = [("HB_CODEPOINT_ENCODE3 (0x%04Xu, 0x%04Xu, 0x%04Xu)" %
- (v+(i if i not in ce and not ccc[i] else 0,)), v)
- for v,i in dm2]
-dm2_array = [s for s,v in dm2]
-l = 1 + len(dm1_u16_array) + len(dm1_u32_array)
+
+dm2 = sorted((v+(i if i not in ce and not ccc[i] else 0,), v)
+ for i,v in dm.items() if len(v) == 2)
+
+filt = lambda v: ((v[0] & 0xFFFFF800) == 0x0000 and
+ (v[1] & 0xFFFFFF80) == 0x0300 and
+ (v[2] & 0xFFF0C000) == 0x0000)
+dm2_u32_array = [v for v in dm2 if filt(v[0])]
+dm2_u64_array = [v for v in dm2 if not filt(v[0])]
+assert dm2_u32_array + dm2_u64_array == dm2
+dm2_u32_array = ["HB_CODEPOINT_ENCODE3_11_7_14 (0x%04Xu, 0x%04Xu, 0x%04Xu)" % v[0] for v in dm2_u32_array]
+dm2_u64_array = ["HB_CODEPOINT_ENCODE3 (0x%04Xu, 0x%04Xu, 0x%04Xu)" % v[0] for v in dm2_u64_array]
+
+l = 1 + len(dm1_p0_array) + len(dm1_p2_array)
dm2_order = {v[1]:i+l for i,v in enumerate(dm2)}
+
dm_order = {None: 0}
dm_order.update(dm1_order)
dm_order.update(dm2_order)
-gc_order = packTab.AutoMapping()
-for _ in ('Cc', 'Cf', 'Cn', 'Co', 'Cs', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu',
- 'Mc', 'Me', 'Mn', 'Nd', 'Nl', 'No', 'Pc', 'Pd', 'Pe', 'Pf',
- 'Pi', 'Po', 'Ps', 'Sc', 'Sk', 'Sm', 'So', 'Zl', 'Zp', 'Zs',):
- gc_order[_]
+gc_order = dict()
+for i,v in enumerate(('Cc', 'Cf', 'Cn', 'Co', 'Cs', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu',
+ 'Mc', 'Me', 'Mn', 'Nd', 'Nl', 'No', 'Pc', 'Pd', 'Pe', 'Pf',
+ 'Pi', 'Po', 'Ps', 'Sc', 'Sk', 'Sm', 'So', 'Zl', 'Zp', 'Zs',)):
+ gc_order[i] = v
+ gc_order[v] = i
-sc_order = packTab.AutoMapping()
+sc_order = dict()
sc_array = []
-sc_re = re.compile(" (HB_SCRIPT_[_A-Z]*).*HB_TAG [(]'(.)','(.)','(.)','(.)'[)]")
+sc_re = re.compile(r"\b(HB_SCRIPT_[_A-Z]*).*HB_TAG [(]'(.)','(.)','(.)','(.)'[)]")
for line in open('hb-common.h'):
m = sc_re.search (line)
if not m: continue
name = m.group(1)
tag = ''.join(m.group(i) for i in range(2, 6))
- i = sc_order[tag]
- assert i == len(sc_array)
+ i = len(sc_array)
+ sc_order[tag] = i
+ sc_order[i] = tag
sc_array.append(name)
-# TODO Currently if gc_order or sc_order do not capture all values, we get in
-# trouble because they silently add new values. We should be able to "freeze"
-# them, or just do the mapping ourselves.
-
DEFAULT = 1
COMPACT = 3
+SLOPPY = 5
logging.info('Generating output...')
@@ -79,7 +88,7 @@ print("/* == Start of generated table == */")
print("/*")
print(" * The following table is generated by running:")
print(" *")
-print(" * ./gen-ucd-table.py ucd.nonunihan.grouped.xml")
+print(" * ./gen-ucd-table.py ucd.nounihan.grouped.xml")
print(" *")
print(" * on file with this description:", ucdxml.description)
print(" */")
@@ -92,9 +101,10 @@ print()
code = packTab.Code('_hb_ucd')
sc_array, _ = code.addArray('hb_script_t', 'sc_map', sc_array)
-dm1_16_array, _ = code.addArray('uint16_t', 'dm1_u16_map', dm1_u16_array)
-dm1_32_array, _ = code.addArray('uint32_t', 'dm1_u32_map', dm1_u32_array)
-dm2_array, _ = code.addArray('uint64_t', 'dm2_map', dm2_array)
+dm1_p0_array, _ = code.addArray('uint16_t', 'dm1_p0_map', dm1_p0_array)
+dm1_p2_array, _ = code.addArray('uint16_t', 'dm1_p2_map', dm1_p2_array)
+dm2_u32_array, _ = code.addArray('uint32_t', 'dm2_u32_map', dm2_u32_array)
+dm2_u64_array, _ = code.addArray('uint64_t', 'dm2_u64_map', dm2_u64_array)
code.print_c(linkage='static inline')
datasets = [
@@ -105,15 +115,32 @@ datasets = [
('dm', dm, None, dm_order),
]
-for compression in (DEFAULT, COMPACT):
+for compression in (DEFAULT, COMPACT, SLOPPY):
logging.info(' Compression=%d:' % compression)
print()
if compression == DEFAULT:
print('#ifndef HB_OPTIMIZE_SIZE')
+ elif compression == COMPACT:
+ print('#elif !defined(HB_NO_UCD_UNASSIGNED)')
else:
print('#else')
print()
+ if compression == SLOPPY:
+ for i in range(len(gc)):
+ if (i % 128) and gc[i] == 'Cn':
+ gc[i] = gc[i - 1]
+ for i in range(len(gc) - 2, -1, -1):
+ if ((i + 1) % 128) and gc[i] == 'Cn':
+ gc[i] = gc[i + 1]
+ for i in range(len(sc)):
+ if (i % 128) and sc[i] == 'Zzzz':
+ sc[i] = sc[i - 1]
+ for i in range(len(sc) - 2, -1, -1):
+ if ((i + 1) % 128) and sc[i] == 'Zzzz':
+ sc[i] = sc[i + 1]
+
+
code = packTab.Code('_hb_ucd')
for name,data,default,mapping in datasets:
@@ -123,12 +150,11 @@ for compression in (DEFAULT, COMPACT):
code.print_c(linkage='static inline')
-
- if compression != DEFAULT:
- print()
- print('#endif')
print()
+print('#endif')
+print()
+
print()
print("#endif /* HB_UCD_TABLE_HH */")
print()
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
index 4a537baf3ac..c8d83c828ec 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
@@ -41,6 +41,11 @@
#define HB_CODEPOINT_DECODE3_2(v) ((hb_codepoint_t) ((v) >> 21) & 0x1FFFFFu)
#define HB_CODEPOINT_DECODE3_3(v) ((hb_codepoint_t) (v) & 0x1FFFFFu)
+/* Custom encoding used by hb-ucd. */
+#define HB_CODEPOINT_ENCODE3_11_7_14(x,y,z) (((uint32_t) ((x) & 0x07FFu) << 21) | (((uint32_t) (y) & 0x007Fu) << 14) | (uint32_t) ((z) & 0x3FFFu))
+#define HB_CODEPOINT_DECODE3_11_7_14_1(v) ((hb_codepoint_t) ((v) >> 21))
+#define HB_CODEPOINT_DECODE3_11_7_14_2(v) ((hb_codepoint_t) (((v) >> 14) & 0x007Fu) | 0x0300)
+#define HB_CODEPOINT_DECODE3_11_7_14_3(v) ((hb_codepoint_t) (v) & 0x3FFFu)
struct
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-bimap.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-bimap.hh
new file mode 100644
index 00000000000..29291506ab1
--- /dev/null
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-bimap.hh
@@ -0,0 +1,139 @@
+/*
+ * Copyright © 2019 Adobe Inc.
+ *
+ * This is part of HarfBuzz, a text shaping library.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ * Adobe Author(s): Michiharu Ariza
+ */
+
+#ifndef HB_BIMAP_HH
+#define HB_BIMAP_HH
+
+#include "hb.hh"
+
+/* Bi-directional map */
+struct hb_bimap_t
+{
+ hb_bimap_t () { init (); }
+ ~hb_bimap_t () { fini (); }
+
+ void init ()
+ {
+ forw_map.init ();
+ back_map.init ();
+ }
+
+ void fini ()
+ {
+ forw_map.fini ();
+ back_map.fini ();
+ }
+
+ void reset ()
+ {
+ forw_map.reset ();
+ back_map.reset ();
+ }
+
+ bool in_error () const { return forw_map.in_error () || back_map.in_error (); }
+
+ void set (hb_codepoint_t lhs, hb_codepoint_t rhs)
+ {
+ forw_map.set (lhs, rhs);
+ back_map.set (rhs, lhs);
+ }
+
+ hb_codepoint_t get (hb_codepoint_t lhs) const { return forw_map.get (lhs); }
+ hb_codepoint_t backward (hb_codepoint_t rhs) const { return back_map.get (rhs); }
+
+ hb_codepoint_t operator [] (hb_codepoint_t lhs) const { return get (lhs); }
+ bool has (hb_codepoint_t lhs, hb_codepoint_t *vp = nullptr) const { return forw_map.has (lhs, vp); }
+
+ void del (hb_codepoint_t lhs)
+ {
+ back_map.del (get (lhs));
+ forw_map.del (lhs);
+ }
+
+ void clear ()
+ {
+ forw_map.clear ();
+ back_map.clear ();
+ }
+
+ bool is_empty () const { return get_population () == 0; }
+
+ unsigned int get_population () const { return forw_map.get_population (); }
+
+ protected:
+ hb_map_t forw_map;
+ hb_map_t back_map;
+};
+
+/* Inremental bimap: only lhs is given, rhs is incrementally assigned */
+struct hb_inc_bimap_t : hb_bimap_t
+{
+ /* Add a mapping from lhs to rhs with a unique value if lhs is unknown.
+ * Return the rhs value as the result.
+ */
+ hb_codepoint_t add (hb_codepoint_t lhs)
+ {
+ hb_codepoint_t rhs = forw_map[lhs];
+ if (rhs == HB_MAP_VALUE_INVALID)
+ {
+ rhs = get_population ();
+ set (lhs, rhs);
+ }
+ return rhs;
+ }
+
+ /* Create an identity map. */
+ bool identity (unsigned int size)
+ {
+ clear ();
+ for (hb_codepoint_t i = 0; i < size; i++) set (i, i);
+ return !in_error ();
+ }
+
+ protected:
+ static int cmp_id (const void* a, const void* b)
+ { return (int)*(const hb_codepoint_t *)a - (int)*(const hb_codepoint_t *)b; }
+
+ public:
+ /* Optional: after finished adding all mappings in a random order,
+ * reassign rhs to lhs so that they are in the same order. */
+ void sort ()
+ {
+ hb_codepoint_t count = get_population ();
+ hb_vector_t <hb_codepoint_t> work;
+ work.resize (count);
+
+ for (hb_codepoint_t rhs = 0; rhs < count; rhs++)
+ work[rhs] = back_map[rhs];
+
+ work.qsort (cmp_id);
+
+ for (hb_codepoint_t rhs = 0; rhs < count; rhs++)
+ set (work[rhs], rhs);
+ }
+};
+
+#endif /* HB_BIMAP_HH */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc
index 497df65fd43..9ed26bd2fa3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc
@@ -487,6 +487,7 @@ hb_blob_t::try_make_writable ()
* Mmap
*/
+#ifndef HB_NO_OPEN
#ifdef HAVE_MMAP
# include <sys/types.h>
# include <sys/stat.h>
@@ -543,10 +544,6 @@ _hb_mapped_file_destroy (void *file_)
hb_blob_t *
hb_blob_create_from_file (const char *file_name)
{
-#ifdef HB_NO_OPEN
- return hb_blob_get_empty ();
-#endif
-
/* Adopted from glib's gmappedfile.c with Matthias Clasen and
Allison Lortie permission but changed a lot to suit our need. */
#if defined(HAVE_MMAP) && !defined(HB_NO_MMAP)
@@ -680,3 +677,4 @@ fread_fail_without_close:
free (data);
return hb_blob_get_empty ();
}
+#endif /* !HB_NO_OPEN */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc
index d1dbd078811..db1978e6df4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc
@@ -2023,7 +2023,6 @@ hb_buffer_set_message_func (hb_buffer_t *buffer,
buffer->message_destroy = nullptr;
}
}
-
bool
hb_buffer_t::message_impl (hb_font_t *font, const char *fmt, va_list ap)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.hh
index bc0c7eddcc8..de0655de3e4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.hh
@@ -359,6 +359,9 @@ struct hb_buffer_t
}
bool message (hb_font_t *font, const char *fmt, ...) HB_PRINTF_FUNC(3, 4)
{
+#ifdef HB_NO_BUFFER_MESSAGE
+ return true;
+#else
if (!messaging ())
return true;
va_list ap;
@@ -366,6 +369,7 @@ struct hb_buffer_t
bool ret = message_impl (font, fmt, ap);
va_end (ap);
return ret;
+#endif
}
HB_INTERNAL bool message_impl (hb_font_t *font, const char *fmt, va_list ap) HB_PRINTF_FUNC(3, 0);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc
index fb6377e399f..9035755a4e4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-common.cc
@@ -70,7 +70,7 @@ _hb_options_init ()
p = c + strlen (c);
#define OPTION(name, symbol) \
- if (0 == strncmp (c, name, p - c) && strlen (name) == p - c) do { u.opts.symbol = true; } while (0)
+ if (0 == strncmp (c, name, p - c) && strlen (name) == static_cast<size_t>(p - c)) do { u.opts.symbol = true; } while (0)
OPTION ("uniscribe-bug-compatible", uniscribe_bug_compatible);
OPTION ("aat", aat);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh
index 66af29aaa92..f9e4699fc51 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh
@@ -40,6 +40,7 @@
#define HB_LEAN
#define HB_MINI
#define HB_NO_MT
+#define HB_NO_UCD_UNASSIGNED
#ifndef NDEBUG
#define NDEBUG
#endif
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff-common.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff-common.hh
index 919cb815025..8b8e592013a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff-common.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff-common.hh
@@ -27,6 +27,7 @@
#define HB_OT_CFF_COMMON_HH
#include "hb-open-type.hh"
+#include "hb-bimap.hh"
#include "hb-ot-layout-common.hh"
#include "hb-cff-interp-dict-common.hh"
#include "hb-subset-plan.hh"
@@ -410,57 +411,6 @@ struct table_info_t
unsigned int offSize;
};
-/* used to remap font index or SID from fullset to subset.
- * set to CFF_UNDEF_CODE if excluded from subset */
-struct remap_t : hb_vector_t<hb_codepoint_t>
-{
- void init () { SUPER::init (); }
-
- void fini () { SUPER::fini (); }
-
- bool reset (unsigned int size)
- {
- if (unlikely (!SUPER::resize (size)))
- return false;
- for (unsigned int i = 0; i < length; i++)
- (*this)[i] = CFF_UNDEF_CODE;
- count = 0;
- return true;
- }
-
- bool identity (unsigned int size)
- {
- if (unlikely (!SUPER::resize (size)))
- return false;
- unsigned int i;
- for (i = 0; i < length; i++)
- (*this)[i] = i;
- count = i;
- return true;
- }
-
- bool excludes (hb_codepoint_t id) const
- { return (id < length) && ((*this)[id] == CFF_UNDEF_CODE); }
-
- bool includes (hb_codepoint_t id) const
- { return !excludes (id); }
-
- unsigned int add (unsigned int i)
- {
- if ((*this)[i] == CFF_UNDEF_CODE)
- (*this)[i] = count++;
- return (*this)[i];
- }
-
- hb_codepoint_t get_count () const { return count; }
-
- protected:
- hb_codepoint_t count;
-
- private:
- typedef hb_vector_t<hb_codepoint_t> SUPER;
-};
-
template <typename COUNT>
struct FDArray : CFFIndexOf<COUNT, FontDict>
{
@@ -504,7 +454,7 @@ struct FDArray : CFFIndexOf<COUNT, FontDict>
unsigned int offSize_,
const hb_vector_t<DICTVAL> &fontDicts,
unsigned int fdCount,
- const remap_t &fdmap,
+ const hb_inc_bimap_t &fdmap,
OP_SERIALIZER& opszr,
const hb_vector_t<table_info_t> &privateInfos)
{
@@ -519,7 +469,7 @@ struct FDArray : CFFIndexOf<COUNT, FontDict>
unsigned int offset = 1;
unsigned int fid = 0;
for (unsigned i = 0; i < fontDicts.length; i++)
- if (fdmap.includes (i))
+ if (fdmap.has (i))
{
if (unlikely (fid >= fdCount)) return_trace (false);
CFFIndexOf<COUNT, FontDict>::set_offset_at (fid++, offset);
@@ -529,7 +479,7 @@ struct FDArray : CFFIndexOf<COUNT, FontDict>
/* serialize font dicts */
for (unsigned int i = 0; i < fontDicts.length; i++)
- if (fdmap.includes (i))
+ if (fdmap.has (i))
{
FontDict *dict = c->start_embed<FontDict> ();
if (unlikely (!dict->serialize (c, fontDicts[i], opszr, privateInfos[fdmap[i]])))
@@ -543,12 +493,12 @@ struct FDArray : CFFIndexOf<COUNT, FontDict>
static unsigned int calculate_serialized_size (unsigned int &offSize_ /* OUT */,
const hb_vector_t<DICTVAL> &fontDicts,
unsigned int fdCount,
- const remap_t &fdmap,
+ const hb_inc_bimap_t &fdmap,
OP_SERIALIZER& opszr)
{
unsigned int dictsSize = 0;
for (unsigned int i = 0; i < fontDicts.len; i++)
- if (fdmap.includes (i))
+ if (fdmap.has (i))
dictsSize += FontDict::calculate_serialized_size (fontDicts[i], opszr);
offSize_ = calcOffSize (dictsSize);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff1-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff1-table.hh
index 31d9d879dcc..4050b7d6fb9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff1-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff1-table.hh
@@ -594,10 +594,10 @@ struct Charset
struct CFF1StringIndex : CFF1Index
{
bool serialize (hb_serialize_context_t *c, const CFF1StringIndex &strings,
- unsigned int offSize_, const remap_t &sidmap)
+ unsigned int offSize_, const hb_inc_bimap_t &sidmap)
{
TRACE_SERIALIZE (this);
- if (unlikely ((strings.count == 0) || (sidmap.get_count () == 0)))
+ if (unlikely ((strings.count == 0) || (sidmap.get_population () == 0)))
{
if (unlikely (!c->extend_min (this->count)))
return_trace (false);
@@ -607,7 +607,7 @@ struct CFF1StringIndex : CFF1Index
byte_str_array_t bytesArray;
bytesArray.init ();
- if (!bytesArray.resize (sidmap.get_count ()))
+ if (!bytesArray.resize (sidmap.get_population ()))
return_trace (false);
for (unsigned int i = 0; i < strings.count; i++)
{
@@ -622,10 +622,10 @@ struct CFF1StringIndex : CFF1Index
}
/* in parallel to above */
- unsigned int calculate_serialized_size (unsigned int &offSize_ /*OUT*/, const remap_t &sidmap) const
+ unsigned int calculate_serialized_size (unsigned int &offSize_ /*OUT*/, const hb_inc_bimap_t &sidmap) const
{
offSize_ = 0;
- if ((count == 0) || (sidmap.get_count () == 0))
+ if ((count == 0) || (sidmap.get_population () == 0))
return count.static_size;
unsigned int dataSize = 0;
@@ -634,7 +634,7 @@ struct CFF1StringIndex : CFF1Index
dataSize += length_at (i);
offSize_ = calcOffSize(dataSize);
- return CFF1Index::calculate_serialized_size (offSize_, sidmap.get_count (), dataSize);
+ return CFF1Index::calculate_serialized_size (offSize_, sidmap.get_population (), dataSize);
}
};
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.hh
index dc8f8c7ce31..d207728c418 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.hh
@@ -359,7 +359,7 @@ set_indic_properties (hb_glyph_info_t &info)
/* According to ScriptExtensions.txt, these Grantha marks may also be used in Tamil,
* so the Indic shaper needs to know their categories. */
else if (unlikely (u == 0x11301u || u == 0x11303u)) cat = OT_SM;
- else if (unlikely (u == 0x1133cu)) cat = OT_N;
+ else if (unlikely (u == 0x1133Bu || u == 0x1133Cu)) cat = OT_N;
else if (unlikely (u == 0x0AFBu)) cat = OT_N; /* https://github.com/harfbuzz/harfbuzz/issues/552 */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-vorg-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-vorg-table.hh
index b2059e86e64..19e08ebb52f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-vorg-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-vorg-table.hh
@@ -69,102 +69,50 @@ struct VORG
return vertYOrigins[i].vertOriginY;
}
- bool _subset (const hb_subset_plan_t *plan HB_UNUSED,
- const VORG *vorg_table,
- const hb_vector_t<VertOriginMetric> &subset_metrics,
- unsigned int dest_sz,
- void *dest) const
+ template <typename Iterator,
+ hb_requires (hb_is_iterator (Iterator))>
+ void serialize (hb_serialize_context_t *c,
+ Iterator it,
+ FWORD defaultVertOriginY)
{
- hb_serialize_context_t c (dest, dest_sz);
-
- VORG *subset_table = c.start_serialize<VORG> ();
- if (unlikely (!c.extend_min (*subset_table)))
- return false;
-
- subset_table->version.major = 1;
- subset_table->version.minor = 0;
-
- subset_table->defaultVertOriginY = vorg_table->defaultVertOriginY;
- subset_table->vertYOrigins.len = subset_metrics.length;
-
- bool success = true;
- if (subset_metrics.length > 0)
- {
- unsigned int size = VertOriginMetric::static_size * subset_metrics.length;
- VertOriginMetric *metrics = c.allocate_size<VertOriginMetric> (size);
- if (likely (metrics != nullptr))
- memcpy (metrics, &subset_metrics[0], size);
- else
- success = false;
- }
- c.end_serialize ();
-
- return success;
+
+ if (unlikely (!c->extend_min ((*this)))) return;
+
+ this->version.major = 1;
+ this->version.minor = 0;
+
+ this->defaultVertOriginY = defaultVertOriginY;
+ this->vertYOrigins.len = it.len ();
+
+ + it
+ | hb_apply ([c] (const VertOriginMetric& _) { c->copy (_);})
+ ;
}
- bool subset (hb_subset_plan_t *plan) const
+ bool subset (hb_subset_context_t *c) const
{
- hb_blob_t *vorg_blob = hb_sanitize_context_t().reference_table<VORG> (plan->source);
- const VORG *vorg_table = vorg_blob->as<VORG> ();
-
- /* count the number of glyphs to be included in the subset table */
- hb_vector_t<VertOriginMetric> subset_metrics;
- subset_metrics.init ();
-
-
- hb_codepoint_t old_glyph = HB_SET_VALUE_INVALID;
- unsigned int i = 0;
- while (i < vertYOrigins.len
- && plan->glyphset ()->next (&old_glyph))
- {
- while (old_glyph > vertYOrigins[i].glyph)
- {
- i++;
- if (i >= vertYOrigins.len)
- break;
- }
-
- if (old_glyph == vertYOrigins[i].glyph)
- {
- hb_codepoint_t new_glyph;
- if (plan->new_gid_for_old_gid (old_glyph, &new_glyph))
- {
- VertOriginMetric *metrics = subset_metrics.push ();
- metrics->glyph = new_glyph;
- metrics->vertOriginY = vertYOrigins[i].vertOriginY;
- }
- }
- }
-
- /* alloc the new table */
- unsigned int dest_sz = VORG::min_size + VertOriginMetric::static_size * subset_metrics.length;
- void *dest = (void *) malloc (dest_sz);
- if (unlikely (!dest))
- {
- subset_metrics.fini ();
- hb_blob_destroy (vorg_blob);
- return false;
- }
+ TRACE_SUBSET (this);
+ VORG *vorg_prime = c->serializer->start_embed<VORG> ();
+ if (unlikely (!c->serializer->check_success (vorg_prime))) return_trace (false);
+
+ auto it =
+ + vertYOrigins.as_array ()
+ | hb_filter (c->plan->glyphset (), &VertOriginMetric::glyph)
+ | hb_map ([&] (const VertOriginMetric& _)
+ {
+ hb_codepoint_t new_glyph = HB_SET_VALUE_INVALID;
+ c->plan->new_gid_for_old_gid (_.glyph, &new_glyph);
+
+ VertOriginMetric metric;
+ metric.glyph = new_glyph;
+ metric.vertOriginY = _.vertOriginY;
+ return metric;
+ })
+ ;
/* serialize the new table */
- if (!_subset (plan, vorg_table, subset_metrics, dest_sz, dest))
- {
- subset_metrics.fini ();
- free (dest);
- hb_blob_destroy (vorg_blob);
- return false;
- }
-
- hb_blob_t *result = hb_blob_create ((const char *)dest,
- dest_sz,
- HB_MEMORY_MODE_READONLY,
- dest,
- free);
- bool success = plan->add_table (HB_OT_TAG_VORG, result);
- hb_blob_destroy (result);
- subset_metrics.fini ();
- hb_blob_destroy (vorg_blob);
- return success;
+ vorg_prime->serialize (c->serializer, it, defaultVertOriginY);
+ return_trace (true);
}
bool sanitize (hb_sanitize_context_t *c) const
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.cc
index 54f6dc2a7cd..b71ac57cc08 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.cc
@@ -54,7 +54,7 @@ hb_plan_subset_cff_fdselect (const hb_subset_plan_t *plan,
unsigned int &subset_fdselect_size /* OUT */,
unsigned int &subset_fdselect_format /* OUT */,
hb_vector_t<code_pair_t> &fdselect_ranges /* OUT */,
- remap_t &fdmap /* OUT */)
+ hb_inc_bimap_t &fdmap /* OUT */)
{
subset_fd_count = 0;
subset_fdselect_size = 0;
@@ -102,17 +102,13 @@ hb_plan_subset_cff_fdselect (const hb_subset_plan_t *plan,
else
{
/* create a fdmap */
- if (!fdmap.reset (fdCount))
- {
- hb_set_destroy (set);
- return false;
- }
+ fdmap.reset ();
hb_codepoint_t fd = CFF_UNDEF_CODE;
while (set->next (&fd))
fdmap.add (fd);
hb_set_destroy (set);
- if (unlikely (fdmap.get_count () != subset_fd_count))
+ if (unlikely (fdmap.get_population () != subset_fd_count))
return false;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.hh
index 921b0253d6a..6c36e458f53 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff-common.hh
@@ -541,39 +541,29 @@ struct subr_subset_param_t
bool drop_hints;
};
-struct subr_remap_t : remap_t
+struct subr_remap_t : hb_inc_bimap_t
{
void create (hb_set_t *closure)
{
/* create a remapping of subroutine numbers from old to new.
* no optimization based on usage counts. fonttools doesn't appear doing that either.
*/
- reset (closure->get_max () + 1);
- for (hb_codepoint_t old_num = 0; old_num < length; old_num++)
- {
- if (hb_set_has (closure, old_num))
- add (old_num);
- }
+
+ hb_codepoint_t old_num = HB_SET_VALUE_INVALID;
+ while (hb_set_next (closure, &old_num))
+ add (old_num);
- if (get_count () < 1240)
+ if (get_population () < 1240)
bias = 107;
- else if (get_count () < 33900)
+ else if (get_population () < 33900)
bias = 1131;
else
bias = 32768;
}
- hb_codepoint_t operator[] (unsigned int old_num) const
- {
- if (old_num >= length)
- return CFF_UNDEF_CODE;
- else
- return remap_t::operator[] (old_num);
- }
-
int biased_num (unsigned int old_num) const
{
- hb_codepoint_t new_num = (*this)[old_num];
+ hb_codepoint_t new_num = get (old_num);
return (int)new_num - bias;
}
@@ -581,15 +571,15 @@ struct subr_remap_t : remap_t
int bias;
};
-struct subr_remap_ts
+struct subr_remaps_t
{
- subr_remap_ts ()
+ subr_remaps_t ()
{
global_remap.init ();
local_remaps.init ();
}
- ~subr_remap_ts () { fini (); }
+ ~subr_remaps_t () { fini (); }
void init (unsigned int fdCount)
{
@@ -765,7 +755,7 @@ struct subr_subsetter_t
bool encode_subrs (const parsed_cs_str_vec_t &subrs, const subr_remap_t& remap, unsigned int fd, str_buff_vec_t &buffArray) const
{
- unsigned int count = remap.get_count ();
+ unsigned int count = remap.get_population ();
if (unlikely (!buffArray.resize (count)))
return false;
@@ -1005,7 +995,7 @@ struct subr_subsetter_t
parsed_cs_str_vec_t parsed_global_subrs;
hb_vector_t<parsed_cs_str_vec_t> parsed_local_subrs;
- subr_remap_ts remaps;
+ subr_remaps_t remaps;
private:
typedef typename SUBRS::count_type subr_count_type;
@@ -1021,7 +1011,7 @@ hb_plan_subset_cff_fdselect (const hb_subset_plan_t *plan,
unsigned int &subset_fdselect_size /* OUT */,
unsigned int &subset_fdselect_format /* OUT */,
hb_vector_t<CFF::code_pair_t> &fdselect_ranges /* OUT */,
- CFF::remap_t &fdmap /* OUT */);
+ hb_inc_bimap_t &fdmap /* OUT */);
HB_INTERNAL bool
hb_serialize_cff_fdselect (hb_serialize_context_t *c,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff1.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff1.cc
index ab46808d2ec..21bd97fbb80 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff1.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff1.cc
@@ -31,6 +31,7 @@
#include "hb-open-type.hh"
#include "hb-ot-cff1-table.hh"
#include "hb-set.h"
+#include "hb-bimap.hh"
#include "hb-subset-cff1.hh"
#include "hb-subset-plan.hh"
#include "hb-subset-cff-common.hh"
@@ -38,12 +39,12 @@
using namespace CFF;
-struct remap_sid_t : remap_t
+struct remap_sid_t : hb_inc_bimap_t
{
unsigned int add (unsigned int sid)
{
if ((sid != CFF_UNDEF_SID) && !is_std_std (sid))
- return offset_sid (remap_t::add (unoffset_sid (sid)));
+ return offset_sid (hb_inc_bimap_t::add (unoffset_sid (sid)));
else
return sid;
}
@@ -53,7 +54,7 @@ struct remap_sid_t : remap_t
if (is_std_std (sid) || (sid == CFF_UNDEF_SID))
return sid;
else
- return offset_sid (remap_t::operator [] (unoffset_sid (sid)));
+ return offset_sid (get (unoffset_sid (sid)));
}
static const unsigned int num_std_strings = 391;
@@ -581,8 +582,7 @@ struct cff_subset_plan {
bool collect_sids_in_dicts (const OT::cff1::accelerator_subset_t &acc)
{
- if (unlikely (!sidmap.reset (acc.stringIndex->count)))
- return false;
+ sidmap.reset ();
for (unsigned int i = 0; i < name_dict_values_t::ValCount; i++)
{
@@ -596,7 +596,7 @@ struct cff_subset_plan {
if (acc.fdArray != &Null(CFF1FDArray))
for (unsigned int i = 0; i < orig_fdcount; i++)
- if (fdmap.includes (i))
+ if (fdmap.has (i))
(void)sidmap.add (acc.fontDicts[i].fontName);
return true;
@@ -682,7 +682,7 @@ struct cff_subset_plan {
/* SIDs for name strings in dicts are added before glyph names so they fit in 16-bit int range */
if (unlikely (!collect_sids_in_dicts (acc)))
return false;
- if (unlikely (sidmap.get_count () > 0x8000)) /* assumption: a dict won't reference that many strings */
+ if (unlikely (sidmap.get_population () > 0x8000)) /* assumption: a dict won't reference that many strings */
return false;
if (subset_charset)
offsets.charsetInfo.size = plan_subset_charset (acc, plan);
@@ -739,7 +739,7 @@ struct cff_subset_plan {
{
subset_localsubrs[fd].init ();
offsets.localSubrsInfos[fd].init ();
- if (fdmap.includes (fd))
+ if (fdmap.has (fd))
{
if (!subr_subsetter.encode_localsubrs (fd, subset_localsubrs[fd]))
return false;
@@ -790,7 +790,7 @@ struct cff_subset_plan {
cff1_font_dict_op_serializer_t fontSzr;
unsigned int dictsSize = 0;
for (unsigned int i = 0; i < acc.fontDicts.length; i++)
- if (fdmap.includes (i))
+ if (fdmap.has (i))
dictsSize += FontDict::calculate_serialized_size (acc.fontDicts[i], fontSzr);
offsets.FDArrayInfo.offSize = calcOffSize (dictsSize);
@@ -813,7 +813,7 @@ struct cff_subset_plan {
offsets.privateDictInfo.offset = final_size;
for (unsigned int i = 0; i < orig_fdcount; i++)
{
- if (fdmap.includes (i))
+ if (fdmap.has (i))
{
bool has_localsubrs = offsets.localSubrsInfos[i].size > 0;
cff_private_dict_op_serializer_t privSzr (desubroutinize, plan->drop_hints);
@@ -857,7 +857,7 @@ struct cff_subset_plan {
/* font dict index remap table from fullset FDArray to subset FDArray.
* set to CFF_UNDEF_CODE if excluded from subset */
- remap_t fdmap;
+ hb_inc_bimap_t fdmap;
str_buff_vec_t subset_charstrings;
str_buff_vec_t subset_globalsubrs;
@@ -1034,7 +1034,7 @@ static inline bool _write_cff1 (const cff_subset_plan &plan,
assert (plan.offsets.privateDictInfo.offset == (unsigned) (c.head - c.start));
for (unsigned int i = 0; i < acc.privateDicts.length; i++)
{
- if (plan.fdmap.includes (i))
+ if (plan.fdmap.has (i))
{
PrivateDict *pd = c.start_embed<PrivateDict> ();
if (unlikely (pd == nullptr)) return false;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff2.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff2.cc
index afb23ae3c02..e89ca695114 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff2.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-cff2.cc
@@ -330,18 +330,15 @@ struct cff2_subset_plan {
{
subset_localsubrs[fd].init ();
offsets.localSubrsInfos[fd].init ();
- if (fdmap.includes (fd))
- {
- if (!subr_subsetter.encode_localsubrs (fd, subset_localsubrs[fd]))
- return false;
-
- unsigned int dataSize = subset_localsubrs[fd].total_size ();
- if (dataSize > 0)
- {
- offsets.localSubrsInfos[fd].offset = final_size;
- offsets.localSubrsInfos[fd].offSize = calcOffSize (dataSize);
- offsets.localSubrsInfos[fd].size = CFF2Subrs::calculate_serialized_size (offsets.localSubrsInfos[fd].offSize, subset_localsubrs[fd].length, dataSize);
- }
+ if (!subr_subsetter.encode_localsubrs (fd, subset_localsubrs[fd]))
+ return false;
+
+ unsigned int dataSize = subset_localsubrs[fd].total_size ();
+ if (dataSize > 0)
+ {
+ offsets.localSubrsInfos[fd].offset = final_size;
+ offsets.localSubrsInfos[fd].offSize = calcOffSize (dataSize);
+ offsets.localSubrsInfos[fd].size = CFF2Subrs::calculate_serialized_size (offsets.localSubrsInfos[fd].offSize, subset_localsubrs[fd].length, dataSize);
}
}
}
@@ -382,7 +379,7 @@ struct cff2_subset_plan {
cff_font_dict_op_serializer_t fontSzr;
unsigned int dictsSize = 0;
for (unsigned int i = 0; i < acc.fontDicts.length; i++)
- if (fdmap.includes (i))
+ if (fdmap.has (i))
dictsSize += FontDict::calculate_serialized_size (acc.fontDicts[i], fontSzr);
offsets.FDArrayInfo.offSize = calcOffSize (dictsSize);
@@ -401,7 +398,7 @@ struct cff2_subset_plan {
offsets.privateDictsOffset = final_size;
for (unsigned int i = 0; i < orig_fdcount; i++)
{
- if (fdmap.includes (i))
+ if (fdmap.has (i))
{
bool has_localsubrs = offsets.localSubrsInfos[i].size > 0;
cff_private_dict_op_serializer_t privSzr (desubroutinize, drop_hints);
@@ -431,7 +428,7 @@ struct cff2_subset_plan {
unsigned int subset_fdselect_format;
hb_vector_t<code_pair_t> subset_fdselect_ranges;
- remap_t fdmap;
+ hb_inc_bimap_t fdmap;
str_buff_vec_t subset_charstrings;
str_buff_vec_t subset_globalsubrs;
@@ -541,7 +538,7 @@ static inline bool _write_cff2 (const cff2_subset_plan &plan,
assert (plan.offsets.privateDictsOffset == (unsigned) (c.head - c.start));
for (unsigned int i = 0; i < acc.privateDicts.length; i++)
{
- if (plan.fdmap.includes (i))
+ if (plan.fdmap.has (i))
{
PrivateDict *pd = c.start_embed<PrivateDict> ();
if (unlikely (pd == nullptr)) return false;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc
index 3f4c2e40bbf..b117870c88a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc
@@ -204,7 +204,7 @@ _subset_table (hb_subset_plan_t *plan,
result = _subset<const OT::cff2> (plan);
break;
case HB_OT_TAG_VORG:
- result = _subset<const OT::VORG> (plan);
+ result = _subset2<const OT::VORG> (plan);
break;
#endif
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd-table.hh
index e9d0975422a..8b7d648a930 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd-table.hh
@@ -2,7 +2,7 @@
/*
* The following table is generated by running:
*
- * ./gen-ucd-table.py ucd.nonunihan.grouped.xml
+ * ./gen-ucd-table.py ucd.nounihan.grouped.xml
*
* on file with this description: Unicode 12.1.0
*/
@@ -13,7 +13,7 @@
#include "hb.hh"
static const hb_script_t
-_hb_ucd_sc_map[138] =
+_hb_ucd_sc_map[153] =
{
HB_SCRIPT_COMMON, HB_SCRIPT_INHERITED,
HB_SCRIPT_UNKNOWN, HB_SCRIPT_ARABIC,
@@ -84,9 +84,17 @@ _hb_ucd_sc_map[138] =
HB_SCRIPT_ADLAM, HB_SCRIPT_BHAIKSUKI,
HB_SCRIPT_MARCHEN, HB_SCRIPT_OSAGE,
HB_SCRIPT_TANGUT, HB_SCRIPT_NEWA,
+ HB_SCRIPT_MASARAM_GONDI, HB_SCRIPT_NUSHU,
+ HB_SCRIPT_SOYOMBO, HB_SCRIPT_ZANABAZAR_SQUARE,
+ HB_SCRIPT_DOGRA, HB_SCRIPT_GUNJALA_GONDI,
+ HB_SCRIPT_HANIFI_ROHINGYA, HB_SCRIPT_MAKASAR,
+ HB_SCRIPT_MEDEFAIDRIN, HB_SCRIPT_OLD_SOGDIAN,
+ HB_SCRIPT_SOGDIAN, HB_SCRIPT_ELYMAIC,
+ HB_SCRIPT_NANDINAGARI, HB_SCRIPT_NYIAKENG_PUACHUE_HMONG,
+ HB_SCRIPT_WANCHO,
};
static const uint16_t
-_hb_ucd_dm1_u16_map[825] =
+_hb_ucd_dm1_p0_map[825] =
{
0x003Bu, 0x004Bu, 0x0060u, 0x00B4u, 0x00B7u, 0x00C5u, 0x02B9u, 0x0300u,
0x0301u, 0x0313u, 0x0385u, 0x0386u, 0x0388u, 0x0389u, 0x038Au, 0x038Cu,
@@ -193,346 +201,669 @@ _hb_ucd_dm1_u16_map[825] =
0x9EFEu, 0x9F05u, 0x9F0Fu, 0x9F16u, 0x9F3Bu, 0x9F43u, 0x9F8Du, 0x9F8Eu,
0x9F9Cu,
};
+static const uint16_t
+_hb_ucd_dm1_p2_map[110] =
+{
+ 0x0122u, 0x051Cu, 0x0525u, 0x054Bu, 0x063Au, 0x0804u, 0x08DEu, 0x0A2Cu,
+ 0x0B63u, 0x14E4u, 0x16A8u, 0x16EAu, 0x19C8u, 0x1B18u, 0x1D0Bu, 0x1DE4u,
+ 0x1DE6u, 0x2183u, 0x219Fu, 0x2331u, 0x26D4u, 0x2844u, 0x284Au, 0x2B0Cu,
+ 0x2BF1u, 0x300Au, 0x32B8u, 0x335Fu, 0x3393u, 0x339Cu, 0x33C3u, 0x33D5u,
+ 0x346Du, 0x36A3u, 0x38A7u, 0x3A8Du, 0x3AFAu, 0x3CBCu, 0x3D1Eu, 0x3ED1u,
+ 0x3F5Eu, 0x3F8Eu, 0x4263u, 0x42EEu, 0x43ABu, 0x4608u, 0x4735u, 0x4814u,
+ 0x4C36u, 0x4C92u, 0x4FA1u, 0x4FB8u, 0x5044u, 0x50F2u, 0x50F3u, 0x5119u,
+ 0x5133u, 0x5249u, 0x541Du, 0x5626u, 0x569Au, 0x56C5u, 0x597Cu, 0x5AA7u,
+ 0x5BABu, 0x5C80u, 0x5CD0u, 0x5F86u, 0x61DAu, 0x6228u, 0x6247u, 0x62D9u,
+ 0x633Eu, 0x64DAu, 0x6523u, 0x65A8u, 0x67A7u, 0x67B5u, 0x6B3Cu, 0x6C36u,
+ 0x6CD5u, 0x6D6Bu, 0x6F2Cu, 0x6FB1u, 0x70D2u, 0x73CAu, 0x7667u, 0x78AEu,
+ 0x7966u, 0x7CA8u, 0x7ED3u, 0x7F2Fu, 0x85D2u, 0x85EDu, 0x872Eu, 0x8BFAu,
+ 0x8D77u, 0x9145u, 0x91DFu, 0x921Au, 0x940Au, 0x9496u, 0x95B6u, 0x9B30u,
+ 0xA0CEu, 0xA105u, 0xA20Eu, 0xA291u, 0xA392u, 0xA600u,
+};
static const uint32_t
-_hb_ucd_dm1_u32_map[110] =
+_hb_ucd_dm2_u32_map[638] =
{
- 0x20122u,0x2051Cu,0x20525u,0x2054Bu,0x2063Au,0x20804u,0x208DEu,0x20A2Cu,
- 0x20B63u,0x214E4u,0x216A8u,0x216EAu,0x219C8u,0x21B18u,0x21D0Bu,0x21DE4u,
- 0x21DE6u,0x22183u,0x2219Fu,0x22331u,0x226D4u,0x22844u,0x2284Au,0x22B0Cu,
- 0x22BF1u,0x2300Au,0x232B8u,0x2335Fu,0x23393u,0x2339Cu,0x233C3u,0x233D5u,
- 0x2346Du,0x236A3u,0x238A7u,0x23A8Du,0x23AFAu,0x23CBCu,0x23D1Eu,0x23ED1u,
- 0x23F5Eu,0x23F8Eu,0x24263u,0x242EEu,0x243ABu,0x24608u,0x24735u,0x24814u,
- 0x24C36u,0x24C92u,0x24FA1u,0x24FB8u,0x25044u,0x250F2u,0x250F3u,0x25119u,
- 0x25133u,0x25249u,0x2541Du,0x25626u,0x2569Au,0x256C5u,0x2597Cu,0x25AA7u,
- 0x25BABu,0x25C80u,0x25CD0u,0x25F86u,0x261DAu,0x26228u,0x26247u,0x262D9u,
- 0x2633Eu,0x264DAu,0x26523u,0x265A8u,0x267A7u,0x267B5u,0x26B3Cu,0x26C36u,
- 0x26CD5u,0x26D6Bu,0x26F2Cu,0x26FB1u,0x270D2u,0x273CAu,0x27667u,0x278AEu,
- 0x27966u,0x27CA8u,0x27ED3u,0x27F2Fu,0x285D2u,0x285EDu,0x2872Eu,0x28BFAu,
- 0x28D77u,0x29145u,0x291DFu,0x2921Au,0x2940Au,0x29496u,0x295B6u,0x29B30u,
- 0x2A0CEu,0x2A105u,0x2A20Eu,0x2A291u,0x2A392u,0x2A600u,
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x003Cu, 0x0338u, 0x226Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x003Du, 0x0338u, 0x2260u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x003Eu, 0x0338u, 0x226Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0300u, 0x00C0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0301u, 0x00C1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0302u, 0x00C2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0303u, 0x00C3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0304u, 0x0100u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0306u, 0x0102u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0307u, 0x0226u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0308u, 0x00C4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0309u, 0x1EA2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x030Au, 0x00C5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x030Cu, 0x01CDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x030Fu, 0x0200u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0311u, 0x0202u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0323u, 0x1EA0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0325u, 0x1E00u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0041u, 0x0328u, 0x0104u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0042u, 0x0307u, 0x1E02u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0042u, 0x0323u, 0x1E04u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0042u, 0x0331u, 0x1E06u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0043u, 0x0301u, 0x0106u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0043u, 0x0302u, 0x0108u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0043u, 0x0307u, 0x010Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0043u, 0x030Cu, 0x010Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0043u, 0x0327u, 0x00C7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0044u, 0x0307u, 0x1E0Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0044u, 0x030Cu, 0x010Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0044u, 0x0323u, 0x1E0Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0044u, 0x0327u, 0x1E10u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0044u, 0x032Du, 0x1E12u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0044u, 0x0331u, 0x1E0Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0300u, 0x00C8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0301u, 0x00C9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0302u, 0x00CAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0303u, 0x1EBCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0304u, 0x0112u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0306u, 0x0114u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0307u, 0x0116u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0308u, 0x00CBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0309u, 0x1EBAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x030Cu, 0x011Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x030Fu, 0x0204u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0311u, 0x0206u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0323u, 0x1EB8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0327u, 0x0228u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0328u, 0x0118u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x032Du, 0x1E18u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0045u, 0x0330u, 0x1E1Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0046u, 0x0307u, 0x1E1Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0047u, 0x0301u, 0x01F4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0047u, 0x0302u, 0x011Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0047u, 0x0304u, 0x1E20u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0047u, 0x0306u, 0x011Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0047u, 0x0307u, 0x0120u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0047u, 0x030Cu, 0x01E6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0047u, 0x0327u, 0x0122u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0048u, 0x0302u, 0x0124u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0048u, 0x0307u, 0x1E22u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0048u, 0x0308u, 0x1E26u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0048u, 0x030Cu, 0x021Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0048u, 0x0323u, 0x1E24u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0048u, 0x0327u, 0x1E28u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0048u, 0x032Eu, 0x1E2Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0300u, 0x00CCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0301u, 0x00CDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0302u, 0x00CEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0303u, 0x0128u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0304u, 0x012Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0306u, 0x012Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0307u, 0x0130u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0308u, 0x00CFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0309u, 0x1EC8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x030Cu, 0x01CFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x030Fu, 0x0208u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0311u, 0x020Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0323u, 0x1ECAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0328u, 0x012Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0049u, 0x0330u, 0x1E2Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Au, 0x0302u, 0x0134u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Bu, 0x0301u, 0x1E30u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Bu, 0x030Cu, 0x01E8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Bu, 0x0323u, 0x1E32u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Bu, 0x0327u, 0x0136u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Bu, 0x0331u, 0x1E34u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Cu, 0x0301u, 0x0139u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Cu, 0x030Cu, 0x013Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Cu, 0x0323u, 0x1E36u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Cu, 0x0327u, 0x013Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Cu, 0x032Du, 0x1E3Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Cu, 0x0331u, 0x1E3Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Du, 0x0301u, 0x1E3Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Du, 0x0307u, 0x1E40u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Du, 0x0323u, 0x1E42u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x0300u, 0x01F8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x0301u, 0x0143u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x0303u, 0x00D1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x0307u, 0x1E44u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x030Cu, 0x0147u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x0323u, 0x1E46u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x0327u, 0x0145u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x032Du, 0x1E4Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Eu, 0x0331u, 0x1E48u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0300u, 0x00D2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0301u, 0x00D3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0302u, 0x00D4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0303u, 0x00D5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0304u, 0x014Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0306u, 0x014Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0307u, 0x022Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0308u, 0x00D6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0309u, 0x1ECEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x030Bu, 0x0150u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x030Cu, 0x01D1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x030Fu, 0x020Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0311u, 0x020Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x031Bu, 0x01A0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0323u, 0x1ECCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x004Fu, 0x0328u, 0x01EAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0050u, 0x0301u, 0x1E54u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0050u, 0x0307u, 0x1E56u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0052u, 0x0301u, 0x0154u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0052u, 0x0307u, 0x1E58u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0052u, 0x030Cu, 0x0158u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0052u, 0x030Fu, 0x0210u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0052u, 0x0311u, 0x0212u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0052u, 0x0323u, 0x1E5Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0052u, 0x0327u, 0x0156u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0052u, 0x0331u, 0x1E5Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0053u, 0x0301u, 0x015Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0053u, 0x0302u, 0x015Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0053u, 0x0307u, 0x1E60u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0053u, 0x030Cu, 0x0160u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0053u, 0x0323u, 0x1E62u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0053u, 0x0326u, 0x0218u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0053u, 0x0327u, 0x015Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0054u, 0x0307u, 0x1E6Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0054u, 0x030Cu, 0x0164u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0054u, 0x0323u, 0x1E6Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0054u, 0x0326u, 0x021Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0054u, 0x0327u, 0x0162u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0054u, 0x032Du, 0x1E70u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0054u, 0x0331u, 0x1E6Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0300u, 0x00D9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0301u, 0x00DAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0302u, 0x00DBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0303u, 0x0168u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0304u, 0x016Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0306u, 0x016Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0308u, 0x00DCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0309u, 0x1EE6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x030Au, 0x016Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x030Bu, 0x0170u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x030Cu, 0x01D3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x030Fu, 0x0214u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0311u, 0x0216u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x031Bu, 0x01AFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0323u, 0x1EE4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0324u, 0x1E72u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0328u, 0x0172u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x032Du, 0x1E76u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0055u, 0x0330u, 0x1E74u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0056u, 0x0303u, 0x1E7Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0056u, 0x0323u, 0x1E7Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0057u, 0x0300u, 0x1E80u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0057u, 0x0301u, 0x1E82u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0057u, 0x0302u, 0x0174u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0057u, 0x0307u, 0x1E86u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0057u, 0x0308u, 0x1E84u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0057u, 0x0323u, 0x1E88u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0058u, 0x0307u, 0x1E8Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0058u, 0x0308u, 0x1E8Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0300u, 0x1EF2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0301u, 0x00DDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0302u, 0x0176u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0303u, 0x1EF8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0304u, 0x0232u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0307u, 0x1E8Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0308u, 0x0178u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0309u, 0x1EF6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0059u, 0x0323u, 0x1EF4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x005Au, 0x0301u, 0x0179u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x005Au, 0x0302u, 0x1E90u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x005Au, 0x0307u, 0x017Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x005Au, 0x030Cu, 0x017Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x005Au, 0x0323u, 0x1E92u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x005Au, 0x0331u, 0x1E94u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0300u, 0x00E0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0301u, 0x00E1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0302u, 0x00E2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0303u, 0x00E3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0304u, 0x0101u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0306u, 0x0103u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0307u, 0x0227u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0308u, 0x00E4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0309u, 0x1EA3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x030Au, 0x00E5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x030Cu, 0x01CEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x030Fu, 0x0201u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0311u, 0x0203u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0323u, 0x1EA1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0325u, 0x1E01u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0061u, 0x0328u, 0x0105u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0062u, 0x0307u, 0x1E03u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0062u, 0x0323u, 0x1E05u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0062u, 0x0331u, 0x1E07u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0063u, 0x0301u, 0x0107u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0063u, 0x0302u, 0x0109u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0063u, 0x0307u, 0x010Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0063u, 0x030Cu, 0x010Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0063u, 0x0327u, 0x00E7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0064u, 0x0307u, 0x1E0Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0064u, 0x030Cu, 0x010Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0064u, 0x0323u, 0x1E0Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0064u, 0x0327u, 0x1E11u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0064u, 0x032Du, 0x1E13u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0064u, 0x0331u, 0x1E0Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0300u, 0x00E8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0301u, 0x00E9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0302u, 0x00EAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0303u, 0x1EBDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0304u, 0x0113u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0306u, 0x0115u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0307u, 0x0117u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0308u, 0x00EBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0309u, 0x1EBBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x030Cu, 0x011Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x030Fu, 0x0205u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0311u, 0x0207u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0323u, 0x1EB9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0327u, 0x0229u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0328u, 0x0119u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x032Du, 0x1E19u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0065u, 0x0330u, 0x1E1Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0066u, 0x0307u, 0x1E1Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0067u, 0x0301u, 0x01F5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0067u, 0x0302u, 0x011Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0067u, 0x0304u, 0x1E21u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0067u, 0x0306u, 0x011Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0067u, 0x0307u, 0x0121u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0067u, 0x030Cu, 0x01E7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0067u, 0x0327u, 0x0123u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0068u, 0x0302u, 0x0125u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0068u, 0x0307u, 0x1E23u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0068u, 0x0308u, 0x1E27u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0068u, 0x030Cu, 0x021Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0068u, 0x0323u, 0x1E25u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0068u, 0x0327u, 0x1E29u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0068u, 0x032Eu, 0x1E2Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0068u, 0x0331u, 0x1E96u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0300u, 0x00ECu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0301u, 0x00EDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0302u, 0x00EEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0303u, 0x0129u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0304u, 0x012Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0306u, 0x012Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0308u, 0x00EFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0309u, 0x1EC9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x030Cu, 0x01D0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x030Fu, 0x0209u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0311u, 0x020Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0323u, 0x1ECBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0328u, 0x012Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0069u, 0x0330u, 0x1E2Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Au, 0x0302u, 0x0135u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Au, 0x030Cu, 0x01F0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Bu, 0x0301u, 0x1E31u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Bu, 0x030Cu, 0x01E9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Bu, 0x0323u, 0x1E33u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Bu, 0x0327u, 0x0137u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Bu, 0x0331u, 0x1E35u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Cu, 0x0301u, 0x013Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Cu, 0x030Cu, 0x013Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Cu, 0x0323u, 0x1E37u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Cu, 0x0327u, 0x013Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Cu, 0x032Du, 0x1E3Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Cu, 0x0331u, 0x1E3Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Du, 0x0301u, 0x1E3Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Du, 0x0307u, 0x1E41u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Du, 0x0323u, 0x1E43u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x0300u, 0x01F9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x0301u, 0x0144u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x0303u, 0x00F1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x0307u, 0x1E45u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x030Cu, 0x0148u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x0323u, 0x1E47u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x0327u, 0x0146u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x032Du, 0x1E4Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Eu, 0x0331u, 0x1E49u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0300u, 0x00F2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0301u, 0x00F3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0302u, 0x00F4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0303u, 0x00F5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0304u, 0x014Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0306u, 0x014Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0307u, 0x022Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0308u, 0x00F6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0309u, 0x1ECFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x030Bu, 0x0151u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x030Cu, 0x01D2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x030Fu, 0x020Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0311u, 0x020Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x031Bu, 0x01A1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0323u, 0x1ECDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x006Fu, 0x0328u, 0x01EBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0070u, 0x0301u, 0x1E55u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0070u, 0x0307u, 0x1E57u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0072u, 0x0301u, 0x0155u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0072u, 0x0307u, 0x1E59u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0072u, 0x030Cu, 0x0159u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0072u, 0x030Fu, 0x0211u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0072u, 0x0311u, 0x0213u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0072u, 0x0323u, 0x1E5Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0072u, 0x0327u, 0x0157u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0072u, 0x0331u, 0x1E5Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0073u, 0x0301u, 0x015Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0073u, 0x0302u, 0x015Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0073u, 0x0307u, 0x1E61u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0073u, 0x030Cu, 0x0161u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0073u, 0x0323u, 0x1E63u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0073u, 0x0326u, 0x0219u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0073u, 0x0327u, 0x015Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0074u, 0x0307u, 0x1E6Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0074u, 0x0308u, 0x1E97u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0074u, 0x030Cu, 0x0165u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0074u, 0x0323u, 0x1E6Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0074u, 0x0326u, 0x021Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0074u, 0x0327u, 0x0163u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0074u, 0x032Du, 0x1E71u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0074u, 0x0331u, 0x1E6Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0300u, 0x00F9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0301u, 0x00FAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0302u, 0x00FBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0303u, 0x0169u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0304u, 0x016Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0306u, 0x016Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0308u, 0x00FCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0309u, 0x1EE7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x030Au, 0x016Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x030Bu, 0x0171u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x030Cu, 0x01D4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x030Fu, 0x0215u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0311u, 0x0217u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x031Bu, 0x01B0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0323u, 0x1EE5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0324u, 0x1E73u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0328u, 0x0173u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x032Du, 0x1E77u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0075u, 0x0330u, 0x1E75u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0076u, 0x0303u, 0x1E7Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0076u, 0x0323u, 0x1E7Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0077u, 0x0300u, 0x1E81u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0077u, 0x0301u, 0x1E83u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0077u, 0x0302u, 0x0175u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0077u, 0x0307u, 0x1E87u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0077u, 0x0308u, 0x1E85u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0077u, 0x030Au, 0x1E98u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0077u, 0x0323u, 0x1E89u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0078u, 0x0307u, 0x1E8Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0078u, 0x0308u, 0x1E8Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0300u, 0x1EF3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0301u, 0x00FDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0302u, 0x0177u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0303u, 0x1EF9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0304u, 0x0233u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0307u, 0x1E8Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0308u, 0x00FFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0309u, 0x1EF7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x030Au, 0x1E99u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0079u, 0x0323u, 0x1EF5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x007Au, 0x0301u, 0x017Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x007Au, 0x0302u, 0x1E91u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x007Au, 0x0307u, 0x017Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x007Au, 0x030Cu, 0x017Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x007Au, 0x0323u, 0x1E93u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x007Au, 0x0331u, 0x1E95u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00A8u, 0x0300u, 0x1FEDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00A8u, 0x0301u, 0x0385u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00A8u, 0x0342u, 0x1FC1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C2u, 0x0300u, 0x1EA6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C2u, 0x0301u, 0x1EA4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C2u, 0x0303u, 0x1EAAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C2u, 0x0309u, 0x1EA8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C4u, 0x0304u, 0x01DEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C5u, 0x0301u, 0x01FAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C6u, 0x0301u, 0x01FCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C6u, 0x0304u, 0x01E2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00C7u, 0x0301u, 0x1E08u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00CAu, 0x0300u, 0x1EC0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00CAu, 0x0301u, 0x1EBEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00CAu, 0x0303u, 0x1EC4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00CAu, 0x0309u, 0x1EC2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00CFu, 0x0301u, 0x1E2Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D4u, 0x0300u, 0x1ED2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D4u, 0x0301u, 0x1ED0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D4u, 0x0303u, 0x1ED6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D4u, 0x0309u, 0x1ED4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D5u, 0x0301u, 0x1E4Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D5u, 0x0304u, 0x022Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D5u, 0x0308u, 0x1E4Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D6u, 0x0304u, 0x022Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00D8u, 0x0301u, 0x01FEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00DCu, 0x0300u, 0x01DBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00DCu, 0x0301u, 0x01D7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00DCu, 0x0304u, 0x01D5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00DCu, 0x030Cu, 0x01D9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E2u, 0x0300u, 0x1EA7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E2u, 0x0301u, 0x1EA5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E2u, 0x0303u, 0x1EABu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E2u, 0x0309u, 0x1EA9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E4u, 0x0304u, 0x01DFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E5u, 0x0301u, 0x01FBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E6u, 0x0301u, 0x01FDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E6u, 0x0304u, 0x01E3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00E7u, 0x0301u, 0x1E09u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00EAu, 0x0300u, 0x1EC1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00EAu, 0x0301u, 0x1EBFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00EAu, 0x0303u, 0x1EC5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00EAu, 0x0309u, 0x1EC3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00EFu, 0x0301u, 0x1E2Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F4u, 0x0300u, 0x1ED3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F4u, 0x0301u, 0x1ED1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F4u, 0x0303u, 0x1ED7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F4u, 0x0309u, 0x1ED5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F5u, 0x0301u, 0x1E4Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F5u, 0x0304u, 0x022Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F5u, 0x0308u, 0x1E4Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F6u, 0x0304u, 0x022Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00F8u, 0x0301u, 0x01FFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00FCu, 0x0300u, 0x01DCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00FCu, 0x0301u, 0x01D8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00FCu, 0x0304u, 0x01D6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x00FCu, 0x030Cu, 0x01DAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0102u, 0x0300u, 0x1EB0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0102u, 0x0301u, 0x1EAEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0102u, 0x0303u, 0x1EB4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0102u, 0x0309u, 0x1EB2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0103u, 0x0300u, 0x1EB1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0103u, 0x0301u, 0x1EAFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0103u, 0x0303u, 0x1EB5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0103u, 0x0309u, 0x1EB3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0112u, 0x0300u, 0x1E14u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0112u, 0x0301u, 0x1E16u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0113u, 0x0300u, 0x1E15u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0113u, 0x0301u, 0x1E17u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x014Cu, 0x0300u, 0x1E50u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x014Cu, 0x0301u, 0x1E52u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x014Du, 0x0300u, 0x1E51u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x014Du, 0x0301u, 0x1E53u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x015Au, 0x0307u, 0x1E64u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x015Bu, 0x0307u, 0x1E65u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0160u, 0x0307u, 0x1E66u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0161u, 0x0307u, 0x1E67u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0168u, 0x0301u, 0x1E78u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0169u, 0x0301u, 0x1E79u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x016Au, 0x0308u, 0x1E7Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x016Bu, 0x0308u, 0x1E7Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x017Fu, 0x0307u, 0x1E9Bu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A0u, 0x0300u, 0x1EDCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A0u, 0x0301u, 0x1EDAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A0u, 0x0303u, 0x1EE0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A0u, 0x0309u, 0x1EDEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A0u, 0x0323u, 0x1EE2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A1u, 0x0300u, 0x1EDDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A1u, 0x0301u, 0x1EDBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A1u, 0x0303u, 0x1EE1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A1u, 0x0309u, 0x1EDFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01A1u, 0x0323u, 0x1EE3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01AFu, 0x0300u, 0x1EEAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01AFu, 0x0301u, 0x1EE8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01AFu, 0x0303u, 0x1EEEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01AFu, 0x0309u, 0x1EECu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01AFu, 0x0323u, 0x1EF0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01B0u, 0x0300u, 0x1EEBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01B0u, 0x0301u, 0x1EE9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01B0u, 0x0303u, 0x1EEFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01B0u, 0x0309u, 0x1EEDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01B0u, 0x0323u, 0x1EF1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01B7u, 0x030Cu, 0x01EEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01EAu, 0x0304u, 0x01ECu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x01EBu, 0x0304u, 0x01EDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0226u, 0x0304u, 0x01E0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0227u, 0x0304u, 0x01E1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0228u, 0x0306u, 0x1E1Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0229u, 0x0306u, 0x1E1Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x022Eu, 0x0304u, 0x0230u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x022Fu, 0x0304u, 0x0231u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0292u, 0x030Cu, 0x01EFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0308u, 0x0301u, 0x0000u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0391u, 0x0300u, 0x1FBAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0391u, 0x0301u, 0x0386u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0391u, 0x0304u, 0x1FB9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0391u, 0x0306u, 0x1FB8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0391u, 0x0313u, 0x1F08u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0391u, 0x0314u, 0x1F09u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0391u, 0x0345u, 0x1FBCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0395u, 0x0300u, 0x1FC8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0395u, 0x0301u, 0x0388u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0395u, 0x0313u, 0x1F18u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0395u, 0x0314u, 0x1F19u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0397u, 0x0300u, 0x1FCAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0397u, 0x0301u, 0x0389u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0397u, 0x0313u, 0x1F28u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0397u, 0x0314u, 0x1F29u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0397u, 0x0345u, 0x1FCCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0399u, 0x0300u, 0x1FDAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0399u, 0x0301u, 0x038Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0399u, 0x0304u, 0x1FD9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0399u, 0x0306u, 0x1FD8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0399u, 0x0308u, 0x03AAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0399u, 0x0313u, 0x1F38u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0399u, 0x0314u, 0x1F39u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x039Fu, 0x0300u, 0x1FF8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x039Fu, 0x0301u, 0x038Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x039Fu, 0x0313u, 0x1F48u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x039Fu, 0x0314u, 0x1F49u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A1u, 0x0314u, 0x1FECu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A5u, 0x0300u, 0x1FEAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A5u, 0x0301u, 0x038Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A5u, 0x0304u, 0x1FE9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A5u, 0x0306u, 0x1FE8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A5u, 0x0308u, 0x03ABu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A5u, 0x0314u, 0x1F59u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A9u, 0x0300u, 0x1FFAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A9u, 0x0301u, 0x038Fu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A9u, 0x0313u, 0x1F68u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A9u, 0x0314u, 0x1F69u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03A9u, 0x0345u, 0x1FFCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03ACu, 0x0345u, 0x1FB4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03AEu, 0x0345u, 0x1FC4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B1u, 0x0300u, 0x1F70u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B1u, 0x0301u, 0x03ACu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B1u, 0x0304u, 0x1FB1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B1u, 0x0306u, 0x1FB0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B1u, 0x0313u, 0x1F00u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B1u, 0x0314u, 0x1F01u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B1u, 0x0342u, 0x1FB6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B1u, 0x0345u, 0x1FB3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B5u, 0x0300u, 0x1F72u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B5u, 0x0301u, 0x03ADu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B5u, 0x0313u, 0x1F10u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B5u, 0x0314u, 0x1F11u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B7u, 0x0300u, 0x1F74u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B7u, 0x0301u, 0x03AEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B7u, 0x0313u, 0x1F20u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B7u, 0x0314u, 0x1F21u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B7u, 0x0342u, 0x1FC6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B7u, 0x0345u, 0x1FC3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B9u, 0x0300u, 0x1F76u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B9u, 0x0301u, 0x03AFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B9u, 0x0304u, 0x1FD1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B9u, 0x0306u, 0x1FD0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B9u, 0x0308u, 0x03CAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B9u, 0x0313u, 0x1F30u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B9u, 0x0314u, 0x1F31u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03B9u, 0x0342u, 0x1FD6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03BFu, 0x0300u, 0x1F78u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03BFu, 0x0301u, 0x03CCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03BFu, 0x0313u, 0x1F40u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03BFu, 0x0314u, 0x1F41u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C1u, 0x0313u, 0x1FE4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C1u, 0x0314u, 0x1FE5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C5u, 0x0300u, 0x1F7Au),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C5u, 0x0301u, 0x03CDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C5u, 0x0304u, 0x1FE1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C5u, 0x0306u, 0x1FE0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C5u, 0x0308u, 0x03CBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C5u, 0x0313u, 0x1F50u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C5u, 0x0314u, 0x1F51u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C5u, 0x0342u, 0x1FE6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C9u, 0x0300u, 0x1F7Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C9u, 0x0301u, 0x03CEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C9u, 0x0313u, 0x1F60u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C9u, 0x0314u, 0x1F61u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C9u, 0x0342u, 0x1FF6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03C9u, 0x0345u, 0x1FF3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03CAu, 0x0300u, 0x1FD2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03CAu, 0x0301u, 0x0390u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03CAu, 0x0342u, 0x1FD7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03CBu, 0x0300u, 0x1FE2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03CBu, 0x0301u, 0x03B0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03CBu, 0x0342u, 0x1FE7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03CEu, 0x0345u, 0x1FF4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03D2u, 0x0301u, 0x03D3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x03D2u, 0x0308u, 0x03D4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0406u, 0x0308u, 0x0407u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0410u, 0x0306u, 0x04D0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0410u, 0x0308u, 0x04D2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0413u, 0x0301u, 0x0403u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0415u, 0x0300u, 0x0400u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0415u, 0x0306u, 0x04D6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0415u, 0x0308u, 0x0401u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0416u, 0x0306u, 0x04C1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0416u, 0x0308u, 0x04DCu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0417u, 0x0308u, 0x04DEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0418u, 0x0300u, 0x040Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0418u, 0x0304u, 0x04E2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0418u, 0x0306u, 0x0419u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0418u, 0x0308u, 0x04E4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x041Au, 0x0301u, 0x040Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x041Eu, 0x0308u, 0x04E6u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0423u, 0x0304u, 0x04EEu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0423u, 0x0306u, 0x040Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0423u, 0x0308u, 0x04F0u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0423u, 0x030Bu, 0x04F2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0427u, 0x0308u, 0x04F4u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x042Bu, 0x0308u, 0x04F8u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x042Du, 0x0308u, 0x04ECu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0430u, 0x0306u, 0x04D1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0430u, 0x0308u, 0x04D3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0433u, 0x0301u, 0x0453u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0435u, 0x0300u, 0x0450u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0435u, 0x0306u, 0x04D7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0435u, 0x0308u, 0x0451u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0436u, 0x0306u, 0x04C2u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0436u, 0x0308u, 0x04DDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0437u, 0x0308u, 0x04DFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0438u, 0x0300u, 0x045Du),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0438u, 0x0304u, 0x04E3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0438u, 0x0306u, 0x0439u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0438u, 0x0308u, 0x04E5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x043Au, 0x0301u, 0x045Cu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x043Eu, 0x0308u, 0x04E7u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0443u, 0x0304u, 0x04EFu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0443u, 0x0306u, 0x045Eu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0443u, 0x0308u, 0x04F1u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0443u, 0x030Bu, 0x04F3u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0447u, 0x0308u, 0x04F5u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x044Bu, 0x0308u, 0x04F9u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x044Du, 0x0308u, 0x04EDu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0456u, 0x0308u, 0x0457u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0474u, 0x030Fu, 0x0476u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x0475u, 0x030Fu, 0x0477u),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x04D8u, 0x0308u, 0x04DAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x04D9u, 0x0308u, 0x04DBu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x04E8u, 0x0308u, 0x04EAu),
+ HB_CODEPOINT_ENCODE3_11_7_14 (0x04E9u, 0x0308u, 0x04EBu),
};
static const uint64_t
-_hb_ucd_dm2_map[1025] =
+_hb_ucd_dm2_u64_map[387] =
{
- HB_CODEPOINT_ENCODE3 (0x003Cu, 0x0338u, 0x226Eu), HB_CODEPOINT_ENCODE3 (0x003Du, 0x0338u, 0x2260u),
- HB_CODEPOINT_ENCODE3 (0x003Eu, 0x0338u, 0x226Fu), HB_CODEPOINT_ENCODE3 (0x0041u, 0x0300u, 0x00C0u),
- HB_CODEPOINT_ENCODE3 (0x0041u, 0x0301u, 0x00C1u), HB_CODEPOINT_ENCODE3 (0x0041u, 0x0302u, 0x00C2u),
- HB_CODEPOINT_ENCODE3 (0x0041u, 0x0303u, 0x00C3u), HB_CODEPOINT_ENCODE3 (0x0041u, 0x0304u, 0x0100u),
- HB_CODEPOINT_ENCODE3 (0x0041u, 0x0306u, 0x0102u), HB_CODEPOINT_ENCODE3 (0x0041u, 0x0307u, 0x0226u),
- HB_CODEPOINT_ENCODE3 (0x0041u, 0x0308u, 0x00C4u), HB_CODEPOINT_ENCODE3 (0x0041u, 0x0309u, 0x1EA2u),
- HB_CODEPOINT_ENCODE3 (0x0041u, 0x030Au, 0x00C5u), HB_CODEPOINT_ENCODE3 (0x0041u, 0x030Cu, 0x01CDu),
- HB_CODEPOINT_ENCODE3 (0x0041u, 0x030Fu, 0x0200u), HB_CODEPOINT_ENCODE3 (0x0041u, 0x0311u, 0x0202u),
- HB_CODEPOINT_ENCODE3 (0x0041u, 0x0323u, 0x1EA0u), HB_CODEPOINT_ENCODE3 (0x0041u, 0x0325u, 0x1E00u),
- HB_CODEPOINT_ENCODE3 (0x0041u, 0x0328u, 0x0104u), HB_CODEPOINT_ENCODE3 (0x0042u, 0x0307u, 0x1E02u),
- HB_CODEPOINT_ENCODE3 (0x0042u, 0x0323u, 0x1E04u), HB_CODEPOINT_ENCODE3 (0x0042u, 0x0331u, 0x1E06u),
- HB_CODEPOINT_ENCODE3 (0x0043u, 0x0301u, 0x0106u), HB_CODEPOINT_ENCODE3 (0x0043u, 0x0302u, 0x0108u),
- HB_CODEPOINT_ENCODE3 (0x0043u, 0x0307u, 0x010Au), HB_CODEPOINT_ENCODE3 (0x0043u, 0x030Cu, 0x010Cu),
- HB_CODEPOINT_ENCODE3 (0x0043u, 0x0327u, 0x00C7u), HB_CODEPOINT_ENCODE3 (0x0044u, 0x0307u, 0x1E0Au),
- HB_CODEPOINT_ENCODE3 (0x0044u, 0x030Cu, 0x010Eu), HB_CODEPOINT_ENCODE3 (0x0044u, 0x0323u, 0x1E0Cu),
- HB_CODEPOINT_ENCODE3 (0x0044u, 0x0327u, 0x1E10u), HB_CODEPOINT_ENCODE3 (0x0044u, 0x032Du, 0x1E12u),
- HB_CODEPOINT_ENCODE3 (0x0044u, 0x0331u, 0x1E0Eu), HB_CODEPOINT_ENCODE3 (0x0045u, 0x0300u, 0x00C8u),
- HB_CODEPOINT_ENCODE3 (0x0045u, 0x0301u, 0x00C9u), HB_CODEPOINT_ENCODE3 (0x0045u, 0x0302u, 0x00CAu),
- HB_CODEPOINT_ENCODE3 (0x0045u, 0x0303u, 0x1EBCu), HB_CODEPOINT_ENCODE3 (0x0045u, 0x0304u, 0x0112u),
- HB_CODEPOINT_ENCODE3 (0x0045u, 0x0306u, 0x0114u), HB_CODEPOINT_ENCODE3 (0x0045u, 0x0307u, 0x0116u),
- HB_CODEPOINT_ENCODE3 (0x0045u, 0x0308u, 0x00CBu), HB_CODEPOINT_ENCODE3 (0x0045u, 0x0309u, 0x1EBAu),
- HB_CODEPOINT_ENCODE3 (0x0045u, 0x030Cu, 0x011Au), HB_CODEPOINT_ENCODE3 (0x0045u, 0x030Fu, 0x0204u),
- HB_CODEPOINT_ENCODE3 (0x0045u, 0x0311u, 0x0206u), HB_CODEPOINT_ENCODE3 (0x0045u, 0x0323u, 0x1EB8u),
- HB_CODEPOINT_ENCODE3 (0x0045u, 0x0327u, 0x0228u), HB_CODEPOINT_ENCODE3 (0x0045u, 0x0328u, 0x0118u),
- HB_CODEPOINT_ENCODE3 (0x0045u, 0x032Du, 0x1E18u), HB_CODEPOINT_ENCODE3 (0x0045u, 0x0330u, 0x1E1Au),
- HB_CODEPOINT_ENCODE3 (0x0046u, 0x0307u, 0x1E1Eu), HB_CODEPOINT_ENCODE3 (0x0047u, 0x0301u, 0x01F4u),
- HB_CODEPOINT_ENCODE3 (0x0047u, 0x0302u, 0x011Cu), HB_CODEPOINT_ENCODE3 (0x0047u, 0x0304u, 0x1E20u),
- HB_CODEPOINT_ENCODE3 (0x0047u, 0x0306u, 0x011Eu), HB_CODEPOINT_ENCODE3 (0x0047u, 0x0307u, 0x0120u),
- HB_CODEPOINT_ENCODE3 (0x0047u, 0x030Cu, 0x01E6u), HB_CODEPOINT_ENCODE3 (0x0047u, 0x0327u, 0x0122u),
- HB_CODEPOINT_ENCODE3 (0x0048u, 0x0302u, 0x0124u), HB_CODEPOINT_ENCODE3 (0x0048u, 0x0307u, 0x1E22u),
- HB_CODEPOINT_ENCODE3 (0x0048u, 0x0308u, 0x1E26u), HB_CODEPOINT_ENCODE3 (0x0048u, 0x030Cu, 0x021Eu),
- HB_CODEPOINT_ENCODE3 (0x0048u, 0x0323u, 0x1E24u), HB_CODEPOINT_ENCODE3 (0x0048u, 0x0327u, 0x1E28u),
- HB_CODEPOINT_ENCODE3 (0x0048u, 0x032Eu, 0x1E2Au), HB_CODEPOINT_ENCODE3 (0x0049u, 0x0300u, 0x00CCu),
- HB_CODEPOINT_ENCODE3 (0x0049u, 0x0301u, 0x00CDu), HB_CODEPOINT_ENCODE3 (0x0049u, 0x0302u, 0x00CEu),
- HB_CODEPOINT_ENCODE3 (0x0049u, 0x0303u, 0x0128u), HB_CODEPOINT_ENCODE3 (0x0049u, 0x0304u, 0x012Au),
- HB_CODEPOINT_ENCODE3 (0x0049u, 0x0306u, 0x012Cu), HB_CODEPOINT_ENCODE3 (0x0049u, 0x0307u, 0x0130u),
- HB_CODEPOINT_ENCODE3 (0x0049u, 0x0308u, 0x00CFu), HB_CODEPOINT_ENCODE3 (0x0049u, 0x0309u, 0x1EC8u),
- HB_CODEPOINT_ENCODE3 (0x0049u, 0x030Cu, 0x01CFu), HB_CODEPOINT_ENCODE3 (0x0049u, 0x030Fu, 0x0208u),
- HB_CODEPOINT_ENCODE3 (0x0049u, 0x0311u, 0x020Au), HB_CODEPOINT_ENCODE3 (0x0049u, 0x0323u, 0x1ECAu),
- HB_CODEPOINT_ENCODE3 (0x0049u, 0x0328u, 0x012Eu), HB_CODEPOINT_ENCODE3 (0x0049u, 0x0330u, 0x1E2Cu),
- HB_CODEPOINT_ENCODE3 (0x004Au, 0x0302u, 0x0134u), HB_CODEPOINT_ENCODE3 (0x004Bu, 0x0301u, 0x1E30u),
- HB_CODEPOINT_ENCODE3 (0x004Bu, 0x030Cu, 0x01E8u), HB_CODEPOINT_ENCODE3 (0x004Bu, 0x0323u, 0x1E32u),
- HB_CODEPOINT_ENCODE3 (0x004Bu, 0x0327u, 0x0136u), HB_CODEPOINT_ENCODE3 (0x004Bu, 0x0331u, 0x1E34u),
- HB_CODEPOINT_ENCODE3 (0x004Cu, 0x0301u, 0x0139u), HB_CODEPOINT_ENCODE3 (0x004Cu, 0x030Cu, 0x013Du),
- HB_CODEPOINT_ENCODE3 (0x004Cu, 0x0323u, 0x1E36u), HB_CODEPOINT_ENCODE3 (0x004Cu, 0x0327u, 0x013Bu),
- HB_CODEPOINT_ENCODE3 (0x004Cu, 0x032Du, 0x1E3Cu), HB_CODEPOINT_ENCODE3 (0x004Cu, 0x0331u, 0x1E3Au),
- HB_CODEPOINT_ENCODE3 (0x004Du, 0x0301u, 0x1E3Eu), HB_CODEPOINT_ENCODE3 (0x004Du, 0x0307u, 0x1E40u),
- HB_CODEPOINT_ENCODE3 (0x004Du, 0x0323u, 0x1E42u), HB_CODEPOINT_ENCODE3 (0x004Eu, 0x0300u, 0x01F8u),
- HB_CODEPOINT_ENCODE3 (0x004Eu, 0x0301u, 0x0143u), HB_CODEPOINT_ENCODE3 (0x004Eu, 0x0303u, 0x00D1u),
- HB_CODEPOINT_ENCODE3 (0x004Eu, 0x0307u, 0x1E44u), HB_CODEPOINT_ENCODE3 (0x004Eu, 0x030Cu, 0x0147u),
- HB_CODEPOINT_ENCODE3 (0x004Eu, 0x0323u, 0x1E46u), HB_CODEPOINT_ENCODE3 (0x004Eu, 0x0327u, 0x0145u),
- HB_CODEPOINT_ENCODE3 (0x004Eu, 0x032Du, 0x1E4Au), HB_CODEPOINT_ENCODE3 (0x004Eu, 0x0331u, 0x1E48u),
- HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0300u, 0x00D2u), HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0301u, 0x00D3u),
- HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0302u, 0x00D4u), HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0303u, 0x00D5u),
- HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0304u, 0x014Cu), HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0306u, 0x014Eu),
- HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0307u, 0x022Eu), HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0308u, 0x00D6u),
- HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0309u, 0x1ECEu), HB_CODEPOINT_ENCODE3 (0x004Fu, 0x030Bu, 0x0150u),
- HB_CODEPOINT_ENCODE3 (0x004Fu, 0x030Cu, 0x01D1u), HB_CODEPOINT_ENCODE3 (0x004Fu, 0x030Fu, 0x020Cu),
- HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0311u, 0x020Eu), HB_CODEPOINT_ENCODE3 (0x004Fu, 0x031Bu, 0x01A0u),
- HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0323u, 0x1ECCu), HB_CODEPOINT_ENCODE3 (0x004Fu, 0x0328u, 0x01EAu),
- HB_CODEPOINT_ENCODE3 (0x0050u, 0x0301u, 0x1E54u), HB_CODEPOINT_ENCODE3 (0x0050u, 0x0307u, 0x1E56u),
- HB_CODEPOINT_ENCODE3 (0x0052u, 0x0301u, 0x0154u), HB_CODEPOINT_ENCODE3 (0x0052u, 0x0307u, 0x1E58u),
- HB_CODEPOINT_ENCODE3 (0x0052u, 0x030Cu, 0x0158u), HB_CODEPOINT_ENCODE3 (0x0052u, 0x030Fu, 0x0210u),
- HB_CODEPOINT_ENCODE3 (0x0052u, 0x0311u, 0x0212u), HB_CODEPOINT_ENCODE3 (0x0052u, 0x0323u, 0x1E5Au),
- HB_CODEPOINT_ENCODE3 (0x0052u, 0x0327u, 0x0156u), HB_CODEPOINT_ENCODE3 (0x0052u, 0x0331u, 0x1E5Eu),
- HB_CODEPOINT_ENCODE3 (0x0053u, 0x0301u, 0x015Au), HB_CODEPOINT_ENCODE3 (0x0053u, 0x0302u, 0x015Cu),
- HB_CODEPOINT_ENCODE3 (0x0053u, 0x0307u, 0x1E60u), HB_CODEPOINT_ENCODE3 (0x0053u, 0x030Cu, 0x0160u),
- HB_CODEPOINT_ENCODE3 (0x0053u, 0x0323u, 0x1E62u), HB_CODEPOINT_ENCODE3 (0x0053u, 0x0326u, 0x0218u),
- HB_CODEPOINT_ENCODE3 (0x0053u, 0x0327u, 0x015Eu), HB_CODEPOINT_ENCODE3 (0x0054u, 0x0307u, 0x1E6Au),
- HB_CODEPOINT_ENCODE3 (0x0054u, 0x030Cu, 0x0164u), HB_CODEPOINT_ENCODE3 (0x0054u, 0x0323u, 0x1E6Cu),
- HB_CODEPOINT_ENCODE3 (0x0054u, 0x0326u, 0x021Au), HB_CODEPOINT_ENCODE3 (0x0054u, 0x0327u, 0x0162u),
- HB_CODEPOINT_ENCODE3 (0x0054u, 0x032Du, 0x1E70u), HB_CODEPOINT_ENCODE3 (0x0054u, 0x0331u, 0x1E6Eu),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x0300u, 0x00D9u), HB_CODEPOINT_ENCODE3 (0x0055u, 0x0301u, 0x00DAu),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x0302u, 0x00DBu), HB_CODEPOINT_ENCODE3 (0x0055u, 0x0303u, 0x0168u),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x0304u, 0x016Au), HB_CODEPOINT_ENCODE3 (0x0055u, 0x0306u, 0x016Cu),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x0308u, 0x00DCu), HB_CODEPOINT_ENCODE3 (0x0055u, 0x0309u, 0x1EE6u),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x030Au, 0x016Eu), HB_CODEPOINT_ENCODE3 (0x0055u, 0x030Bu, 0x0170u),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x030Cu, 0x01D3u), HB_CODEPOINT_ENCODE3 (0x0055u, 0x030Fu, 0x0214u),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x0311u, 0x0216u), HB_CODEPOINT_ENCODE3 (0x0055u, 0x031Bu, 0x01AFu),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x0323u, 0x1EE4u), HB_CODEPOINT_ENCODE3 (0x0055u, 0x0324u, 0x1E72u),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x0328u, 0x0172u), HB_CODEPOINT_ENCODE3 (0x0055u, 0x032Du, 0x1E76u),
- HB_CODEPOINT_ENCODE3 (0x0055u, 0x0330u, 0x1E74u), HB_CODEPOINT_ENCODE3 (0x0056u, 0x0303u, 0x1E7Cu),
- HB_CODEPOINT_ENCODE3 (0x0056u, 0x0323u, 0x1E7Eu), HB_CODEPOINT_ENCODE3 (0x0057u, 0x0300u, 0x1E80u),
- HB_CODEPOINT_ENCODE3 (0x0057u, 0x0301u, 0x1E82u), HB_CODEPOINT_ENCODE3 (0x0057u, 0x0302u, 0x0174u),
- HB_CODEPOINT_ENCODE3 (0x0057u, 0x0307u, 0x1E86u), HB_CODEPOINT_ENCODE3 (0x0057u, 0x0308u, 0x1E84u),
- HB_CODEPOINT_ENCODE3 (0x0057u, 0x0323u, 0x1E88u), HB_CODEPOINT_ENCODE3 (0x0058u, 0x0307u, 0x1E8Au),
- HB_CODEPOINT_ENCODE3 (0x0058u, 0x0308u, 0x1E8Cu), HB_CODEPOINT_ENCODE3 (0x0059u, 0x0300u, 0x1EF2u),
- HB_CODEPOINT_ENCODE3 (0x0059u, 0x0301u, 0x00DDu), HB_CODEPOINT_ENCODE3 (0x0059u, 0x0302u, 0x0176u),
- HB_CODEPOINT_ENCODE3 (0x0059u, 0x0303u, 0x1EF8u), HB_CODEPOINT_ENCODE3 (0x0059u, 0x0304u, 0x0232u),
- HB_CODEPOINT_ENCODE3 (0x0059u, 0x0307u, 0x1E8Eu), HB_CODEPOINT_ENCODE3 (0x0059u, 0x0308u, 0x0178u),
- HB_CODEPOINT_ENCODE3 (0x0059u, 0x0309u, 0x1EF6u), HB_CODEPOINT_ENCODE3 (0x0059u, 0x0323u, 0x1EF4u),
- HB_CODEPOINT_ENCODE3 (0x005Au, 0x0301u, 0x0179u), HB_CODEPOINT_ENCODE3 (0x005Au, 0x0302u, 0x1E90u),
- HB_CODEPOINT_ENCODE3 (0x005Au, 0x0307u, 0x017Bu), HB_CODEPOINT_ENCODE3 (0x005Au, 0x030Cu, 0x017Du),
- HB_CODEPOINT_ENCODE3 (0x005Au, 0x0323u, 0x1E92u), HB_CODEPOINT_ENCODE3 (0x005Au, 0x0331u, 0x1E94u),
- HB_CODEPOINT_ENCODE3 (0x0061u, 0x0300u, 0x00E0u), HB_CODEPOINT_ENCODE3 (0x0061u, 0x0301u, 0x00E1u),
- HB_CODEPOINT_ENCODE3 (0x0061u, 0x0302u, 0x00E2u), HB_CODEPOINT_ENCODE3 (0x0061u, 0x0303u, 0x00E3u),
- HB_CODEPOINT_ENCODE3 (0x0061u, 0x0304u, 0x0101u), HB_CODEPOINT_ENCODE3 (0x0061u, 0x0306u, 0x0103u),
- HB_CODEPOINT_ENCODE3 (0x0061u, 0x0307u, 0x0227u), HB_CODEPOINT_ENCODE3 (0x0061u, 0x0308u, 0x00E4u),
- HB_CODEPOINT_ENCODE3 (0x0061u, 0x0309u, 0x1EA3u), HB_CODEPOINT_ENCODE3 (0x0061u, 0x030Au, 0x00E5u),
- HB_CODEPOINT_ENCODE3 (0x0061u, 0x030Cu, 0x01CEu), HB_CODEPOINT_ENCODE3 (0x0061u, 0x030Fu, 0x0201u),
- HB_CODEPOINT_ENCODE3 (0x0061u, 0x0311u, 0x0203u), HB_CODEPOINT_ENCODE3 (0x0061u, 0x0323u, 0x1EA1u),
- HB_CODEPOINT_ENCODE3 (0x0061u, 0x0325u, 0x1E01u), HB_CODEPOINT_ENCODE3 (0x0061u, 0x0328u, 0x0105u),
- HB_CODEPOINT_ENCODE3 (0x0062u, 0x0307u, 0x1E03u), HB_CODEPOINT_ENCODE3 (0x0062u, 0x0323u, 0x1E05u),
- HB_CODEPOINT_ENCODE3 (0x0062u, 0x0331u, 0x1E07u), HB_CODEPOINT_ENCODE3 (0x0063u, 0x0301u, 0x0107u),
- HB_CODEPOINT_ENCODE3 (0x0063u, 0x0302u, 0x0109u), HB_CODEPOINT_ENCODE3 (0x0063u, 0x0307u, 0x010Bu),
- HB_CODEPOINT_ENCODE3 (0x0063u, 0x030Cu, 0x010Du), HB_CODEPOINT_ENCODE3 (0x0063u, 0x0327u, 0x00E7u),
- HB_CODEPOINT_ENCODE3 (0x0064u, 0x0307u, 0x1E0Bu), HB_CODEPOINT_ENCODE3 (0x0064u, 0x030Cu, 0x010Fu),
- HB_CODEPOINT_ENCODE3 (0x0064u, 0x0323u, 0x1E0Du), HB_CODEPOINT_ENCODE3 (0x0064u, 0x0327u, 0x1E11u),
- HB_CODEPOINT_ENCODE3 (0x0064u, 0x032Du, 0x1E13u), HB_CODEPOINT_ENCODE3 (0x0064u, 0x0331u, 0x1E0Fu),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x0300u, 0x00E8u), HB_CODEPOINT_ENCODE3 (0x0065u, 0x0301u, 0x00E9u),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x0302u, 0x00EAu), HB_CODEPOINT_ENCODE3 (0x0065u, 0x0303u, 0x1EBDu),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x0304u, 0x0113u), HB_CODEPOINT_ENCODE3 (0x0065u, 0x0306u, 0x0115u),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x0307u, 0x0117u), HB_CODEPOINT_ENCODE3 (0x0065u, 0x0308u, 0x00EBu),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x0309u, 0x1EBBu), HB_CODEPOINT_ENCODE3 (0x0065u, 0x030Cu, 0x011Bu),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x030Fu, 0x0205u), HB_CODEPOINT_ENCODE3 (0x0065u, 0x0311u, 0x0207u),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x0323u, 0x1EB9u), HB_CODEPOINT_ENCODE3 (0x0065u, 0x0327u, 0x0229u),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x0328u, 0x0119u), HB_CODEPOINT_ENCODE3 (0x0065u, 0x032Du, 0x1E19u),
- HB_CODEPOINT_ENCODE3 (0x0065u, 0x0330u, 0x1E1Bu), HB_CODEPOINT_ENCODE3 (0x0066u, 0x0307u, 0x1E1Fu),
- HB_CODEPOINT_ENCODE3 (0x0067u, 0x0301u, 0x01F5u), HB_CODEPOINT_ENCODE3 (0x0067u, 0x0302u, 0x011Du),
- HB_CODEPOINT_ENCODE3 (0x0067u, 0x0304u, 0x1E21u), HB_CODEPOINT_ENCODE3 (0x0067u, 0x0306u, 0x011Fu),
- HB_CODEPOINT_ENCODE3 (0x0067u, 0x0307u, 0x0121u), HB_CODEPOINT_ENCODE3 (0x0067u, 0x030Cu, 0x01E7u),
- HB_CODEPOINT_ENCODE3 (0x0067u, 0x0327u, 0x0123u), HB_CODEPOINT_ENCODE3 (0x0068u, 0x0302u, 0x0125u),
- HB_CODEPOINT_ENCODE3 (0x0068u, 0x0307u, 0x1E23u), HB_CODEPOINT_ENCODE3 (0x0068u, 0x0308u, 0x1E27u),
- HB_CODEPOINT_ENCODE3 (0x0068u, 0x030Cu, 0x021Fu), HB_CODEPOINT_ENCODE3 (0x0068u, 0x0323u, 0x1E25u),
- HB_CODEPOINT_ENCODE3 (0x0068u, 0x0327u, 0x1E29u), HB_CODEPOINT_ENCODE3 (0x0068u, 0x032Eu, 0x1E2Bu),
- HB_CODEPOINT_ENCODE3 (0x0068u, 0x0331u, 0x1E96u), HB_CODEPOINT_ENCODE3 (0x0069u, 0x0300u, 0x00ECu),
- HB_CODEPOINT_ENCODE3 (0x0069u, 0x0301u, 0x00EDu), HB_CODEPOINT_ENCODE3 (0x0069u, 0x0302u, 0x00EEu),
- HB_CODEPOINT_ENCODE3 (0x0069u, 0x0303u, 0x0129u), HB_CODEPOINT_ENCODE3 (0x0069u, 0x0304u, 0x012Bu),
- HB_CODEPOINT_ENCODE3 (0x0069u, 0x0306u, 0x012Du), HB_CODEPOINT_ENCODE3 (0x0069u, 0x0308u, 0x00EFu),
- HB_CODEPOINT_ENCODE3 (0x0069u, 0x0309u, 0x1EC9u), HB_CODEPOINT_ENCODE3 (0x0069u, 0x030Cu, 0x01D0u),
- HB_CODEPOINT_ENCODE3 (0x0069u, 0x030Fu, 0x0209u), HB_CODEPOINT_ENCODE3 (0x0069u, 0x0311u, 0x020Bu),
- HB_CODEPOINT_ENCODE3 (0x0069u, 0x0323u, 0x1ECBu), HB_CODEPOINT_ENCODE3 (0x0069u, 0x0328u, 0x012Fu),
- HB_CODEPOINT_ENCODE3 (0x0069u, 0x0330u, 0x1E2Du), HB_CODEPOINT_ENCODE3 (0x006Au, 0x0302u, 0x0135u),
- HB_CODEPOINT_ENCODE3 (0x006Au, 0x030Cu, 0x01F0u), HB_CODEPOINT_ENCODE3 (0x006Bu, 0x0301u, 0x1E31u),
- HB_CODEPOINT_ENCODE3 (0x006Bu, 0x030Cu, 0x01E9u), HB_CODEPOINT_ENCODE3 (0x006Bu, 0x0323u, 0x1E33u),
- HB_CODEPOINT_ENCODE3 (0x006Bu, 0x0327u, 0x0137u), HB_CODEPOINT_ENCODE3 (0x006Bu, 0x0331u, 0x1E35u),
- HB_CODEPOINT_ENCODE3 (0x006Cu, 0x0301u, 0x013Au), HB_CODEPOINT_ENCODE3 (0x006Cu, 0x030Cu, 0x013Eu),
- HB_CODEPOINT_ENCODE3 (0x006Cu, 0x0323u, 0x1E37u), HB_CODEPOINT_ENCODE3 (0x006Cu, 0x0327u, 0x013Cu),
- HB_CODEPOINT_ENCODE3 (0x006Cu, 0x032Du, 0x1E3Du), HB_CODEPOINT_ENCODE3 (0x006Cu, 0x0331u, 0x1E3Bu),
- HB_CODEPOINT_ENCODE3 (0x006Du, 0x0301u, 0x1E3Fu), HB_CODEPOINT_ENCODE3 (0x006Du, 0x0307u, 0x1E41u),
- HB_CODEPOINT_ENCODE3 (0x006Du, 0x0323u, 0x1E43u), HB_CODEPOINT_ENCODE3 (0x006Eu, 0x0300u, 0x01F9u),
- HB_CODEPOINT_ENCODE3 (0x006Eu, 0x0301u, 0x0144u), HB_CODEPOINT_ENCODE3 (0x006Eu, 0x0303u, 0x00F1u),
- HB_CODEPOINT_ENCODE3 (0x006Eu, 0x0307u, 0x1E45u), HB_CODEPOINT_ENCODE3 (0x006Eu, 0x030Cu, 0x0148u),
- HB_CODEPOINT_ENCODE3 (0x006Eu, 0x0323u, 0x1E47u), HB_CODEPOINT_ENCODE3 (0x006Eu, 0x0327u, 0x0146u),
- HB_CODEPOINT_ENCODE3 (0x006Eu, 0x032Du, 0x1E4Bu), HB_CODEPOINT_ENCODE3 (0x006Eu, 0x0331u, 0x1E49u),
- HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0300u, 0x00F2u), HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0301u, 0x00F3u),
- HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0302u, 0x00F4u), HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0303u, 0x00F5u),
- HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0304u, 0x014Du), HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0306u, 0x014Fu),
- HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0307u, 0x022Fu), HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0308u, 0x00F6u),
- HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0309u, 0x1ECFu), HB_CODEPOINT_ENCODE3 (0x006Fu, 0x030Bu, 0x0151u),
- HB_CODEPOINT_ENCODE3 (0x006Fu, 0x030Cu, 0x01D2u), HB_CODEPOINT_ENCODE3 (0x006Fu, 0x030Fu, 0x020Du),
- HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0311u, 0x020Fu), HB_CODEPOINT_ENCODE3 (0x006Fu, 0x031Bu, 0x01A1u),
- HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0323u, 0x1ECDu), HB_CODEPOINT_ENCODE3 (0x006Fu, 0x0328u, 0x01EBu),
- HB_CODEPOINT_ENCODE3 (0x0070u, 0x0301u, 0x1E55u), HB_CODEPOINT_ENCODE3 (0x0070u, 0x0307u, 0x1E57u),
- HB_CODEPOINT_ENCODE3 (0x0072u, 0x0301u, 0x0155u), HB_CODEPOINT_ENCODE3 (0x0072u, 0x0307u, 0x1E59u),
- HB_CODEPOINT_ENCODE3 (0x0072u, 0x030Cu, 0x0159u), HB_CODEPOINT_ENCODE3 (0x0072u, 0x030Fu, 0x0211u),
- HB_CODEPOINT_ENCODE3 (0x0072u, 0x0311u, 0x0213u), HB_CODEPOINT_ENCODE3 (0x0072u, 0x0323u, 0x1E5Bu),
- HB_CODEPOINT_ENCODE3 (0x0072u, 0x0327u, 0x0157u), HB_CODEPOINT_ENCODE3 (0x0072u, 0x0331u, 0x1E5Fu),
- HB_CODEPOINT_ENCODE3 (0x0073u, 0x0301u, 0x015Bu), HB_CODEPOINT_ENCODE3 (0x0073u, 0x0302u, 0x015Du),
- HB_CODEPOINT_ENCODE3 (0x0073u, 0x0307u, 0x1E61u), HB_CODEPOINT_ENCODE3 (0x0073u, 0x030Cu, 0x0161u),
- HB_CODEPOINT_ENCODE3 (0x0073u, 0x0323u, 0x1E63u), HB_CODEPOINT_ENCODE3 (0x0073u, 0x0326u, 0x0219u),
- HB_CODEPOINT_ENCODE3 (0x0073u, 0x0327u, 0x015Fu), HB_CODEPOINT_ENCODE3 (0x0074u, 0x0307u, 0x1E6Bu),
- HB_CODEPOINT_ENCODE3 (0x0074u, 0x0308u, 0x1E97u), HB_CODEPOINT_ENCODE3 (0x0074u, 0x030Cu, 0x0165u),
- HB_CODEPOINT_ENCODE3 (0x0074u, 0x0323u, 0x1E6Du), HB_CODEPOINT_ENCODE3 (0x0074u, 0x0326u, 0x021Bu),
- HB_CODEPOINT_ENCODE3 (0x0074u, 0x0327u, 0x0163u), HB_CODEPOINT_ENCODE3 (0x0074u, 0x032Du, 0x1E71u),
- HB_CODEPOINT_ENCODE3 (0x0074u, 0x0331u, 0x1E6Fu), HB_CODEPOINT_ENCODE3 (0x0075u, 0x0300u, 0x00F9u),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x0301u, 0x00FAu), HB_CODEPOINT_ENCODE3 (0x0075u, 0x0302u, 0x00FBu),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x0303u, 0x0169u), HB_CODEPOINT_ENCODE3 (0x0075u, 0x0304u, 0x016Bu),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x0306u, 0x016Du), HB_CODEPOINT_ENCODE3 (0x0075u, 0x0308u, 0x00FCu),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x0309u, 0x1EE7u), HB_CODEPOINT_ENCODE3 (0x0075u, 0x030Au, 0x016Fu),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x030Bu, 0x0171u), HB_CODEPOINT_ENCODE3 (0x0075u, 0x030Cu, 0x01D4u),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x030Fu, 0x0215u), HB_CODEPOINT_ENCODE3 (0x0075u, 0x0311u, 0x0217u),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x031Bu, 0x01B0u), HB_CODEPOINT_ENCODE3 (0x0075u, 0x0323u, 0x1EE5u),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x0324u, 0x1E73u), HB_CODEPOINT_ENCODE3 (0x0075u, 0x0328u, 0x0173u),
- HB_CODEPOINT_ENCODE3 (0x0075u, 0x032Du, 0x1E77u), HB_CODEPOINT_ENCODE3 (0x0075u, 0x0330u, 0x1E75u),
- HB_CODEPOINT_ENCODE3 (0x0076u, 0x0303u, 0x1E7Du), HB_CODEPOINT_ENCODE3 (0x0076u, 0x0323u, 0x1E7Fu),
- HB_CODEPOINT_ENCODE3 (0x0077u, 0x0300u, 0x1E81u), HB_CODEPOINT_ENCODE3 (0x0077u, 0x0301u, 0x1E83u),
- HB_CODEPOINT_ENCODE3 (0x0077u, 0x0302u, 0x0175u), HB_CODEPOINT_ENCODE3 (0x0077u, 0x0307u, 0x1E87u),
- HB_CODEPOINT_ENCODE3 (0x0077u, 0x0308u, 0x1E85u), HB_CODEPOINT_ENCODE3 (0x0077u, 0x030Au, 0x1E98u),
- HB_CODEPOINT_ENCODE3 (0x0077u, 0x0323u, 0x1E89u), HB_CODEPOINT_ENCODE3 (0x0078u, 0x0307u, 0x1E8Bu),
- HB_CODEPOINT_ENCODE3 (0x0078u, 0x0308u, 0x1E8Du), HB_CODEPOINT_ENCODE3 (0x0079u, 0x0300u, 0x1EF3u),
- HB_CODEPOINT_ENCODE3 (0x0079u, 0x0301u, 0x00FDu), HB_CODEPOINT_ENCODE3 (0x0079u, 0x0302u, 0x0177u),
- HB_CODEPOINT_ENCODE3 (0x0079u, 0x0303u, 0x1EF9u), HB_CODEPOINT_ENCODE3 (0x0079u, 0x0304u, 0x0233u),
- HB_CODEPOINT_ENCODE3 (0x0079u, 0x0307u, 0x1E8Fu), HB_CODEPOINT_ENCODE3 (0x0079u, 0x0308u, 0x00FFu),
- HB_CODEPOINT_ENCODE3 (0x0079u, 0x0309u, 0x1EF7u), HB_CODEPOINT_ENCODE3 (0x0079u, 0x030Au, 0x1E99u),
- HB_CODEPOINT_ENCODE3 (0x0079u, 0x0323u, 0x1EF5u), HB_CODEPOINT_ENCODE3 (0x007Au, 0x0301u, 0x017Au),
- HB_CODEPOINT_ENCODE3 (0x007Au, 0x0302u, 0x1E91u), HB_CODEPOINT_ENCODE3 (0x007Au, 0x0307u, 0x017Cu),
- HB_CODEPOINT_ENCODE3 (0x007Au, 0x030Cu, 0x017Eu), HB_CODEPOINT_ENCODE3 (0x007Au, 0x0323u, 0x1E93u),
- HB_CODEPOINT_ENCODE3 (0x007Au, 0x0331u, 0x1E95u), HB_CODEPOINT_ENCODE3 (0x00A8u, 0x0300u, 0x1FEDu),
- HB_CODEPOINT_ENCODE3 (0x00A8u, 0x0301u, 0x0385u), HB_CODEPOINT_ENCODE3 (0x00A8u, 0x0342u, 0x1FC1u),
- HB_CODEPOINT_ENCODE3 (0x00C2u, 0x0300u, 0x1EA6u), HB_CODEPOINT_ENCODE3 (0x00C2u, 0x0301u, 0x1EA4u),
- HB_CODEPOINT_ENCODE3 (0x00C2u, 0x0303u, 0x1EAAu), HB_CODEPOINT_ENCODE3 (0x00C2u, 0x0309u, 0x1EA8u),
- HB_CODEPOINT_ENCODE3 (0x00C4u, 0x0304u, 0x01DEu), HB_CODEPOINT_ENCODE3 (0x00C5u, 0x0301u, 0x01FAu),
- HB_CODEPOINT_ENCODE3 (0x00C6u, 0x0301u, 0x01FCu), HB_CODEPOINT_ENCODE3 (0x00C6u, 0x0304u, 0x01E2u),
- HB_CODEPOINT_ENCODE3 (0x00C7u, 0x0301u, 0x1E08u), HB_CODEPOINT_ENCODE3 (0x00CAu, 0x0300u, 0x1EC0u),
- HB_CODEPOINT_ENCODE3 (0x00CAu, 0x0301u, 0x1EBEu), HB_CODEPOINT_ENCODE3 (0x00CAu, 0x0303u, 0x1EC4u),
- HB_CODEPOINT_ENCODE3 (0x00CAu, 0x0309u, 0x1EC2u), HB_CODEPOINT_ENCODE3 (0x00CFu, 0x0301u, 0x1E2Eu),
- HB_CODEPOINT_ENCODE3 (0x00D4u, 0x0300u, 0x1ED2u), HB_CODEPOINT_ENCODE3 (0x00D4u, 0x0301u, 0x1ED0u),
- HB_CODEPOINT_ENCODE3 (0x00D4u, 0x0303u, 0x1ED6u), HB_CODEPOINT_ENCODE3 (0x00D4u, 0x0309u, 0x1ED4u),
- HB_CODEPOINT_ENCODE3 (0x00D5u, 0x0301u, 0x1E4Cu), HB_CODEPOINT_ENCODE3 (0x00D5u, 0x0304u, 0x022Cu),
- HB_CODEPOINT_ENCODE3 (0x00D5u, 0x0308u, 0x1E4Eu), HB_CODEPOINT_ENCODE3 (0x00D6u, 0x0304u, 0x022Au),
- HB_CODEPOINT_ENCODE3 (0x00D8u, 0x0301u, 0x01FEu), HB_CODEPOINT_ENCODE3 (0x00DCu, 0x0300u, 0x01DBu),
- HB_CODEPOINT_ENCODE3 (0x00DCu, 0x0301u, 0x01D7u), HB_CODEPOINT_ENCODE3 (0x00DCu, 0x0304u, 0x01D5u),
- HB_CODEPOINT_ENCODE3 (0x00DCu, 0x030Cu, 0x01D9u), HB_CODEPOINT_ENCODE3 (0x00E2u, 0x0300u, 0x1EA7u),
- HB_CODEPOINT_ENCODE3 (0x00E2u, 0x0301u, 0x1EA5u), HB_CODEPOINT_ENCODE3 (0x00E2u, 0x0303u, 0x1EABu),
- HB_CODEPOINT_ENCODE3 (0x00E2u, 0x0309u, 0x1EA9u), HB_CODEPOINT_ENCODE3 (0x00E4u, 0x0304u, 0x01DFu),
- HB_CODEPOINT_ENCODE3 (0x00E5u, 0x0301u, 0x01FBu), HB_CODEPOINT_ENCODE3 (0x00E6u, 0x0301u, 0x01FDu),
- HB_CODEPOINT_ENCODE3 (0x00E6u, 0x0304u, 0x01E3u), HB_CODEPOINT_ENCODE3 (0x00E7u, 0x0301u, 0x1E09u),
- HB_CODEPOINT_ENCODE3 (0x00EAu, 0x0300u, 0x1EC1u), HB_CODEPOINT_ENCODE3 (0x00EAu, 0x0301u, 0x1EBFu),
- HB_CODEPOINT_ENCODE3 (0x00EAu, 0x0303u, 0x1EC5u), HB_CODEPOINT_ENCODE3 (0x00EAu, 0x0309u, 0x1EC3u),
- HB_CODEPOINT_ENCODE3 (0x00EFu, 0x0301u, 0x1E2Fu), HB_CODEPOINT_ENCODE3 (0x00F4u, 0x0300u, 0x1ED3u),
- HB_CODEPOINT_ENCODE3 (0x00F4u, 0x0301u, 0x1ED1u), HB_CODEPOINT_ENCODE3 (0x00F4u, 0x0303u, 0x1ED7u),
- HB_CODEPOINT_ENCODE3 (0x00F4u, 0x0309u, 0x1ED5u), HB_CODEPOINT_ENCODE3 (0x00F5u, 0x0301u, 0x1E4Du),
- HB_CODEPOINT_ENCODE3 (0x00F5u, 0x0304u, 0x022Du), HB_CODEPOINT_ENCODE3 (0x00F5u, 0x0308u, 0x1E4Fu),
- HB_CODEPOINT_ENCODE3 (0x00F6u, 0x0304u, 0x022Bu), HB_CODEPOINT_ENCODE3 (0x00F8u, 0x0301u, 0x01FFu),
- HB_CODEPOINT_ENCODE3 (0x00FCu, 0x0300u, 0x01DCu), HB_CODEPOINT_ENCODE3 (0x00FCu, 0x0301u, 0x01D8u),
- HB_CODEPOINT_ENCODE3 (0x00FCu, 0x0304u, 0x01D6u), HB_CODEPOINT_ENCODE3 (0x00FCu, 0x030Cu, 0x01DAu),
- HB_CODEPOINT_ENCODE3 (0x0102u, 0x0300u, 0x1EB0u), HB_CODEPOINT_ENCODE3 (0x0102u, 0x0301u, 0x1EAEu),
- HB_CODEPOINT_ENCODE3 (0x0102u, 0x0303u, 0x1EB4u), HB_CODEPOINT_ENCODE3 (0x0102u, 0x0309u, 0x1EB2u),
- HB_CODEPOINT_ENCODE3 (0x0103u, 0x0300u, 0x1EB1u), HB_CODEPOINT_ENCODE3 (0x0103u, 0x0301u, 0x1EAFu),
- HB_CODEPOINT_ENCODE3 (0x0103u, 0x0303u, 0x1EB5u), HB_CODEPOINT_ENCODE3 (0x0103u, 0x0309u, 0x1EB3u),
- HB_CODEPOINT_ENCODE3 (0x0112u, 0x0300u, 0x1E14u), HB_CODEPOINT_ENCODE3 (0x0112u, 0x0301u, 0x1E16u),
- HB_CODEPOINT_ENCODE3 (0x0113u, 0x0300u, 0x1E15u), HB_CODEPOINT_ENCODE3 (0x0113u, 0x0301u, 0x1E17u),
- HB_CODEPOINT_ENCODE3 (0x014Cu, 0x0300u, 0x1E50u), HB_CODEPOINT_ENCODE3 (0x014Cu, 0x0301u, 0x1E52u),
- HB_CODEPOINT_ENCODE3 (0x014Du, 0x0300u, 0x1E51u), HB_CODEPOINT_ENCODE3 (0x014Du, 0x0301u, 0x1E53u),
- HB_CODEPOINT_ENCODE3 (0x015Au, 0x0307u, 0x1E64u), HB_CODEPOINT_ENCODE3 (0x015Bu, 0x0307u, 0x1E65u),
- HB_CODEPOINT_ENCODE3 (0x0160u, 0x0307u, 0x1E66u), HB_CODEPOINT_ENCODE3 (0x0161u, 0x0307u, 0x1E67u),
- HB_CODEPOINT_ENCODE3 (0x0168u, 0x0301u, 0x1E78u), HB_CODEPOINT_ENCODE3 (0x0169u, 0x0301u, 0x1E79u),
- HB_CODEPOINT_ENCODE3 (0x016Au, 0x0308u, 0x1E7Au), HB_CODEPOINT_ENCODE3 (0x016Bu, 0x0308u, 0x1E7Bu),
- HB_CODEPOINT_ENCODE3 (0x017Fu, 0x0307u, 0x1E9Bu), HB_CODEPOINT_ENCODE3 (0x01A0u, 0x0300u, 0x1EDCu),
- HB_CODEPOINT_ENCODE3 (0x01A0u, 0x0301u, 0x1EDAu), HB_CODEPOINT_ENCODE3 (0x01A0u, 0x0303u, 0x1EE0u),
- HB_CODEPOINT_ENCODE3 (0x01A0u, 0x0309u, 0x1EDEu), HB_CODEPOINT_ENCODE3 (0x01A0u, 0x0323u, 0x1EE2u),
- HB_CODEPOINT_ENCODE3 (0x01A1u, 0x0300u, 0x1EDDu), HB_CODEPOINT_ENCODE3 (0x01A1u, 0x0301u, 0x1EDBu),
- HB_CODEPOINT_ENCODE3 (0x01A1u, 0x0303u, 0x1EE1u), HB_CODEPOINT_ENCODE3 (0x01A1u, 0x0309u, 0x1EDFu),
- HB_CODEPOINT_ENCODE3 (0x01A1u, 0x0323u, 0x1EE3u), HB_CODEPOINT_ENCODE3 (0x01AFu, 0x0300u, 0x1EEAu),
- HB_CODEPOINT_ENCODE3 (0x01AFu, 0x0301u, 0x1EE8u), HB_CODEPOINT_ENCODE3 (0x01AFu, 0x0303u, 0x1EEEu),
- HB_CODEPOINT_ENCODE3 (0x01AFu, 0x0309u, 0x1EECu), HB_CODEPOINT_ENCODE3 (0x01AFu, 0x0323u, 0x1EF0u),
- HB_CODEPOINT_ENCODE3 (0x01B0u, 0x0300u, 0x1EEBu), HB_CODEPOINT_ENCODE3 (0x01B0u, 0x0301u, 0x1EE9u),
- HB_CODEPOINT_ENCODE3 (0x01B0u, 0x0303u, 0x1EEFu), HB_CODEPOINT_ENCODE3 (0x01B0u, 0x0309u, 0x1EEDu),
- HB_CODEPOINT_ENCODE3 (0x01B0u, 0x0323u, 0x1EF1u), HB_CODEPOINT_ENCODE3 (0x01B7u, 0x030Cu, 0x01EEu),
- HB_CODEPOINT_ENCODE3 (0x01EAu, 0x0304u, 0x01ECu), HB_CODEPOINT_ENCODE3 (0x01EBu, 0x0304u, 0x01EDu),
- HB_CODEPOINT_ENCODE3 (0x0226u, 0x0304u, 0x01E0u), HB_CODEPOINT_ENCODE3 (0x0227u, 0x0304u, 0x01E1u),
- HB_CODEPOINT_ENCODE3 (0x0228u, 0x0306u, 0x1E1Cu), HB_CODEPOINT_ENCODE3 (0x0229u, 0x0306u, 0x1E1Du),
- HB_CODEPOINT_ENCODE3 (0x022Eu, 0x0304u, 0x0230u), HB_CODEPOINT_ENCODE3 (0x022Fu, 0x0304u, 0x0231u),
- HB_CODEPOINT_ENCODE3 (0x0292u, 0x030Cu, 0x01EFu), HB_CODEPOINT_ENCODE3 (0x0308u, 0x0301u, 0x0000u),
- HB_CODEPOINT_ENCODE3 (0x0391u, 0x0300u, 0x1FBAu), HB_CODEPOINT_ENCODE3 (0x0391u, 0x0301u, 0x0386u),
- HB_CODEPOINT_ENCODE3 (0x0391u, 0x0304u, 0x1FB9u), HB_CODEPOINT_ENCODE3 (0x0391u, 0x0306u, 0x1FB8u),
- HB_CODEPOINT_ENCODE3 (0x0391u, 0x0313u, 0x1F08u), HB_CODEPOINT_ENCODE3 (0x0391u, 0x0314u, 0x1F09u),
- HB_CODEPOINT_ENCODE3 (0x0391u, 0x0345u, 0x1FBCu), HB_CODEPOINT_ENCODE3 (0x0395u, 0x0300u, 0x1FC8u),
- HB_CODEPOINT_ENCODE3 (0x0395u, 0x0301u, 0x0388u), HB_CODEPOINT_ENCODE3 (0x0395u, 0x0313u, 0x1F18u),
- HB_CODEPOINT_ENCODE3 (0x0395u, 0x0314u, 0x1F19u), HB_CODEPOINT_ENCODE3 (0x0397u, 0x0300u, 0x1FCAu),
- HB_CODEPOINT_ENCODE3 (0x0397u, 0x0301u, 0x0389u), HB_CODEPOINT_ENCODE3 (0x0397u, 0x0313u, 0x1F28u),
- HB_CODEPOINT_ENCODE3 (0x0397u, 0x0314u, 0x1F29u), HB_CODEPOINT_ENCODE3 (0x0397u, 0x0345u, 0x1FCCu),
- HB_CODEPOINT_ENCODE3 (0x0399u, 0x0300u, 0x1FDAu), HB_CODEPOINT_ENCODE3 (0x0399u, 0x0301u, 0x038Au),
- HB_CODEPOINT_ENCODE3 (0x0399u, 0x0304u, 0x1FD9u), HB_CODEPOINT_ENCODE3 (0x0399u, 0x0306u, 0x1FD8u),
- HB_CODEPOINT_ENCODE3 (0x0399u, 0x0308u, 0x03AAu), HB_CODEPOINT_ENCODE3 (0x0399u, 0x0313u, 0x1F38u),
- HB_CODEPOINT_ENCODE3 (0x0399u, 0x0314u, 0x1F39u), HB_CODEPOINT_ENCODE3 (0x039Fu, 0x0300u, 0x1FF8u),
- HB_CODEPOINT_ENCODE3 (0x039Fu, 0x0301u, 0x038Cu), HB_CODEPOINT_ENCODE3 (0x039Fu, 0x0313u, 0x1F48u),
- HB_CODEPOINT_ENCODE3 (0x039Fu, 0x0314u, 0x1F49u), HB_CODEPOINT_ENCODE3 (0x03A1u, 0x0314u, 0x1FECu),
- HB_CODEPOINT_ENCODE3 (0x03A5u, 0x0300u, 0x1FEAu), HB_CODEPOINT_ENCODE3 (0x03A5u, 0x0301u, 0x038Eu),
- HB_CODEPOINT_ENCODE3 (0x03A5u, 0x0304u, 0x1FE9u), HB_CODEPOINT_ENCODE3 (0x03A5u, 0x0306u, 0x1FE8u),
- HB_CODEPOINT_ENCODE3 (0x03A5u, 0x0308u, 0x03ABu), HB_CODEPOINT_ENCODE3 (0x03A5u, 0x0314u, 0x1F59u),
- HB_CODEPOINT_ENCODE3 (0x03A9u, 0x0300u, 0x1FFAu), HB_CODEPOINT_ENCODE3 (0x03A9u, 0x0301u, 0x038Fu),
- HB_CODEPOINT_ENCODE3 (0x03A9u, 0x0313u, 0x1F68u), HB_CODEPOINT_ENCODE3 (0x03A9u, 0x0314u, 0x1F69u),
- HB_CODEPOINT_ENCODE3 (0x03A9u, 0x0345u, 0x1FFCu), HB_CODEPOINT_ENCODE3 (0x03ACu, 0x0345u, 0x1FB4u),
- HB_CODEPOINT_ENCODE3 (0x03AEu, 0x0345u, 0x1FC4u), HB_CODEPOINT_ENCODE3 (0x03B1u, 0x0300u, 0x1F70u),
- HB_CODEPOINT_ENCODE3 (0x03B1u, 0x0301u, 0x03ACu), HB_CODEPOINT_ENCODE3 (0x03B1u, 0x0304u, 0x1FB1u),
- HB_CODEPOINT_ENCODE3 (0x03B1u, 0x0306u, 0x1FB0u), HB_CODEPOINT_ENCODE3 (0x03B1u, 0x0313u, 0x1F00u),
- HB_CODEPOINT_ENCODE3 (0x03B1u, 0x0314u, 0x1F01u), HB_CODEPOINT_ENCODE3 (0x03B1u, 0x0342u, 0x1FB6u),
- HB_CODEPOINT_ENCODE3 (0x03B1u, 0x0345u, 0x1FB3u), HB_CODEPOINT_ENCODE3 (0x03B5u, 0x0300u, 0x1F72u),
- HB_CODEPOINT_ENCODE3 (0x03B5u, 0x0301u, 0x03ADu), HB_CODEPOINT_ENCODE3 (0x03B5u, 0x0313u, 0x1F10u),
- HB_CODEPOINT_ENCODE3 (0x03B5u, 0x0314u, 0x1F11u), HB_CODEPOINT_ENCODE3 (0x03B7u, 0x0300u, 0x1F74u),
- HB_CODEPOINT_ENCODE3 (0x03B7u, 0x0301u, 0x03AEu), HB_CODEPOINT_ENCODE3 (0x03B7u, 0x0313u, 0x1F20u),
- HB_CODEPOINT_ENCODE3 (0x03B7u, 0x0314u, 0x1F21u), HB_CODEPOINT_ENCODE3 (0x03B7u, 0x0342u, 0x1FC6u),
- HB_CODEPOINT_ENCODE3 (0x03B7u, 0x0345u, 0x1FC3u), HB_CODEPOINT_ENCODE3 (0x03B9u, 0x0300u, 0x1F76u),
- HB_CODEPOINT_ENCODE3 (0x03B9u, 0x0301u, 0x03AFu), HB_CODEPOINT_ENCODE3 (0x03B9u, 0x0304u, 0x1FD1u),
- HB_CODEPOINT_ENCODE3 (0x03B9u, 0x0306u, 0x1FD0u), HB_CODEPOINT_ENCODE3 (0x03B9u, 0x0308u, 0x03CAu),
- HB_CODEPOINT_ENCODE3 (0x03B9u, 0x0313u, 0x1F30u), HB_CODEPOINT_ENCODE3 (0x03B9u, 0x0314u, 0x1F31u),
- HB_CODEPOINT_ENCODE3 (0x03B9u, 0x0342u, 0x1FD6u), HB_CODEPOINT_ENCODE3 (0x03BFu, 0x0300u, 0x1F78u),
- HB_CODEPOINT_ENCODE3 (0x03BFu, 0x0301u, 0x03CCu), HB_CODEPOINT_ENCODE3 (0x03BFu, 0x0313u, 0x1F40u),
- HB_CODEPOINT_ENCODE3 (0x03BFu, 0x0314u, 0x1F41u), HB_CODEPOINT_ENCODE3 (0x03C1u, 0x0313u, 0x1FE4u),
- HB_CODEPOINT_ENCODE3 (0x03C1u, 0x0314u, 0x1FE5u), HB_CODEPOINT_ENCODE3 (0x03C5u, 0x0300u, 0x1F7Au),
- HB_CODEPOINT_ENCODE3 (0x03C5u, 0x0301u, 0x03CDu), HB_CODEPOINT_ENCODE3 (0x03C5u, 0x0304u, 0x1FE1u),
- HB_CODEPOINT_ENCODE3 (0x03C5u, 0x0306u, 0x1FE0u), HB_CODEPOINT_ENCODE3 (0x03C5u, 0x0308u, 0x03CBu),
- HB_CODEPOINT_ENCODE3 (0x03C5u, 0x0313u, 0x1F50u), HB_CODEPOINT_ENCODE3 (0x03C5u, 0x0314u, 0x1F51u),
- HB_CODEPOINT_ENCODE3 (0x03C5u, 0x0342u, 0x1FE6u), HB_CODEPOINT_ENCODE3 (0x03C9u, 0x0300u, 0x1F7Cu),
- HB_CODEPOINT_ENCODE3 (0x03C9u, 0x0301u, 0x03CEu), HB_CODEPOINT_ENCODE3 (0x03C9u, 0x0313u, 0x1F60u),
- HB_CODEPOINT_ENCODE3 (0x03C9u, 0x0314u, 0x1F61u), HB_CODEPOINT_ENCODE3 (0x03C9u, 0x0342u, 0x1FF6u),
- HB_CODEPOINT_ENCODE3 (0x03C9u, 0x0345u, 0x1FF3u), HB_CODEPOINT_ENCODE3 (0x03CAu, 0x0300u, 0x1FD2u),
- HB_CODEPOINT_ENCODE3 (0x03CAu, 0x0301u, 0x0390u), HB_CODEPOINT_ENCODE3 (0x03CAu, 0x0342u, 0x1FD7u),
- HB_CODEPOINT_ENCODE3 (0x03CBu, 0x0300u, 0x1FE2u), HB_CODEPOINT_ENCODE3 (0x03CBu, 0x0301u, 0x03B0u),
- HB_CODEPOINT_ENCODE3 (0x03CBu, 0x0342u, 0x1FE7u), HB_CODEPOINT_ENCODE3 (0x03CEu, 0x0345u, 0x1FF4u),
- HB_CODEPOINT_ENCODE3 (0x03D2u, 0x0301u, 0x03D3u), HB_CODEPOINT_ENCODE3 (0x03D2u, 0x0308u, 0x03D4u),
- HB_CODEPOINT_ENCODE3 (0x0406u, 0x0308u, 0x0407u), HB_CODEPOINT_ENCODE3 (0x0410u, 0x0306u, 0x04D0u),
- HB_CODEPOINT_ENCODE3 (0x0410u, 0x0308u, 0x04D2u), HB_CODEPOINT_ENCODE3 (0x0413u, 0x0301u, 0x0403u),
- HB_CODEPOINT_ENCODE3 (0x0415u, 0x0300u, 0x0400u), HB_CODEPOINT_ENCODE3 (0x0415u, 0x0306u, 0x04D6u),
- HB_CODEPOINT_ENCODE3 (0x0415u, 0x0308u, 0x0401u), HB_CODEPOINT_ENCODE3 (0x0416u, 0x0306u, 0x04C1u),
- HB_CODEPOINT_ENCODE3 (0x0416u, 0x0308u, 0x04DCu), HB_CODEPOINT_ENCODE3 (0x0417u, 0x0308u, 0x04DEu),
- HB_CODEPOINT_ENCODE3 (0x0418u, 0x0300u, 0x040Du), HB_CODEPOINT_ENCODE3 (0x0418u, 0x0304u, 0x04E2u),
- HB_CODEPOINT_ENCODE3 (0x0418u, 0x0306u, 0x0419u), HB_CODEPOINT_ENCODE3 (0x0418u, 0x0308u, 0x04E4u),
- HB_CODEPOINT_ENCODE3 (0x041Au, 0x0301u, 0x040Cu), HB_CODEPOINT_ENCODE3 (0x041Eu, 0x0308u, 0x04E6u),
- HB_CODEPOINT_ENCODE3 (0x0423u, 0x0304u, 0x04EEu), HB_CODEPOINT_ENCODE3 (0x0423u, 0x0306u, 0x040Eu),
- HB_CODEPOINT_ENCODE3 (0x0423u, 0x0308u, 0x04F0u), HB_CODEPOINT_ENCODE3 (0x0423u, 0x030Bu, 0x04F2u),
- HB_CODEPOINT_ENCODE3 (0x0427u, 0x0308u, 0x04F4u), HB_CODEPOINT_ENCODE3 (0x042Bu, 0x0308u, 0x04F8u),
- HB_CODEPOINT_ENCODE3 (0x042Du, 0x0308u, 0x04ECu), HB_CODEPOINT_ENCODE3 (0x0430u, 0x0306u, 0x04D1u),
- HB_CODEPOINT_ENCODE3 (0x0430u, 0x0308u, 0x04D3u), HB_CODEPOINT_ENCODE3 (0x0433u, 0x0301u, 0x0453u),
- HB_CODEPOINT_ENCODE3 (0x0435u, 0x0300u, 0x0450u), HB_CODEPOINT_ENCODE3 (0x0435u, 0x0306u, 0x04D7u),
- HB_CODEPOINT_ENCODE3 (0x0435u, 0x0308u, 0x0451u), HB_CODEPOINT_ENCODE3 (0x0436u, 0x0306u, 0x04C2u),
- HB_CODEPOINT_ENCODE3 (0x0436u, 0x0308u, 0x04DDu), HB_CODEPOINT_ENCODE3 (0x0437u, 0x0308u, 0x04DFu),
- HB_CODEPOINT_ENCODE3 (0x0438u, 0x0300u, 0x045Du), HB_CODEPOINT_ENCODE3 (0x0438u, 0x0304u, 0x04E3u),
- HB_CODEPOINT_ENCODE3 (0x0438u, 0x0306u, 0x0439u), HB_CODEPOINT_ENCODE3 (0x0438u, 0x0308u, 0x04E5u),
- HB_CODEPOINT_ENCODE3 (0x043Au, 0x0301u, 0x045Cu), HB_CODEPOINT_ENCODE3 (0x043Eu, 0x0308u, 0x04E7u),
- HB_CODEPOINT_ENCODE3 (0x0443u, 0x0304u, 0x04EFu), HB_CODEPOINT_ENCODE3 (0x0443u, 0x0306u, 0x045Eu),
- HB_CODEPOINT_ENCODE3 (0x0443u, 0x0308u, 0x04F1u), HB_CODEPOINT_ENCODE3 (0x0443u, 0x030Bu, 0x04F3u),
- HB_CODEPOINT_ENCODE3 (0x0447u, 0x0308u, 0x04F5u), HB_CODEPOINT_ENCODE3 (0x044Bu, 0x0308u, 0x04F9u),
- HB_CODEPOINT_ENCODE3 (0x044Du, 0x0308u, 0x04EDu), HB_CODEPOINT_ENCODE3 (0x0456u, 0x0308u, 0x0457u),
- HB_CODEPOINT_ENCODE3 (0x0474u, 0x030Fu, 0x0476u), HB_CODEPOINT_ENCODE3 (0x0475u, 0x030Fu, 0x0477u),
- HB_CODEPOINT_ENCODE3 (0x04D8u, 0x0308u, 0x04DAu), HB_CODEPOINT_ENCODE3 (0x04D9u, 0x0308u, 0x04DBu),
- HB_CODEPOINT_ENCODE3 (0x04E8u, 0x0308u, 0x04EAu), HB_CODEPOINT_ENCODE3 (0x04E9u, 0x0308u, 0x04EBu),
HB_CODEPOINT_ENCODE3 (0x05D0u, 0x05B7u, 0x0000u), HB_CODEPOINT_ENCODE3 (0x05D0u, 0x05B8u, 0x0000u),
HB_CODEPOINT_ENCODE3 (0x05D0u, 0x05BCu, 0x0000u), HB_CODEPOINT_ENCODE3 (0x05D1u, 0x05BCu, 0x0000u),
HB_CODEPOINT_ENCODE3 (0x05D1u, 0x05BFu, 0x0000u), HB_CODEPOINT_ENCODE3 (0x05D2u, 0x05BCu, 0x0000u),
@@ -732,7 +1063,7 @@ _hb_ucd_dm2_map[1025] =
#ifndef HB_OPTIMIZE_SIZE
static const uint8_t
-_hb_ucd_u8[31814] =
+_hb_ucd_u8[32102] =
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 26, 26, 26, 26,
@@ -2343,11 +2674,17 @@ _hb_ucd_u8[31814] =
89, 89, 89, 89, 89, 2, 2, 2, 2, 2, 2, 2,130,130,130,130,
130,130,130,130,130,130,130,130,130,130,130,130,130,130,130, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,130,130,130, 2,
- 2, 2, 2, 2, 2, 2,130,130,130,130,130,130, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
- 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 94, 94, 94, 94,
+ 2, 2, 2, 2, 2, 2,130,130,130,130,130,130,144,144,144,144,
+ 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+ 144,144,144,144, 2, 2, 2, 2, 2, 2, 2, 2,144,144,144,144,
+ 144,144,144,144,144,144, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2,147,147,147,147,
+ 147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+ 147,147,147,147, 2, 2, 2, 2, 2, 2, 2, 2,148,148,148,148,
+ 148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+ 148,148,148,148,148,148, 2, 2, 2, 2, 2, 2,149,149,149,149,
+ 149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+ 149,149,149, 2, 2, 2, 2, 2, 2, 2, 2, 2, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 2, 2, 2, 2, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 2, 2, 2, 2,
@@ -2400,14 +2737,17 @@ _hb_ucd_u8[31814] =
102,102,102,102,102,102, 2, 2, 2, 2, 2, 2,126,126,126,126,
126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
126,126,126,126,126,126,126, 2, 2,126,126,126,126,126,126,126,
- 126,126,126,126,126,126,126,126, 2, 2, 2, 2, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2,125,125,125,125,
+ 126,126,126,126,126,126,126,126, 2, 2, 2, 2,142,142,142,142,
+ 142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+ 142,142,142,142,142,142,142,142, 2, 2, 2, 2,125,125,125,125,
125,125,125,125,125,125,125,125,125,125,125,125,125,125,125, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,125, 5, 5, 5, 5,
- 5, 5, 5, 5, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6,
- 6, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 7, 7, 7, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,125,150,150,150,150,
+ 150,150,150,150, 2, 2,150,150,150,150,150,150,150,150,150,150,
+ 150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+ 150, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,141,141,141,141,
+ 141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+ 141,141,141,141, 2, 2, 2, 2, 2, 2, 2, 2,140,140,140,140,
+ 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,121,121,121,121,
121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
121,121,121,121,121, 2, 2, 2, 2, 2, 2, 2,133,133,133,133,
@@ -2419,16 +2759,19 @@ _hb_ucd_u8[31814] =
134,134,134,134,134,134,134,134,134,134,134,134, 2, 2,134,134,
134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
134,134,134,134, 2,134,134,134,134,134,134,134,134,134,134,134,
- 134,134,134, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8,
- 8, 8, 8, 2, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 2, 2, 2, 8, 2, 8, 8, 2, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 2, 2, 2, 2, 2, 2, 9, 9, 9, 9,
- 9, 9, 2, 9, 9, 2, 9, 9, 9, 9, 9, 9, 9, 9, 2, 9,
- 9, 9, 9, 9, 9, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 2, 2, 2, 2, 2, 2, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 2, 2, 2, 2, 2, 2, 2, 22, 22, 22, 22,
+ 134,134,134, 2, 2, 2, 2, 2, 2, 2, 2, 2,138,138,138,138,
+ 138,138,138, 2,138,138, 2,138,138,138,138,138,138,138,138,138,
+ 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+ 138,138,138, 2, 2, 2,138, 2,138,138, 2,138,138,138,138,138,
+ 138,138,138,138, 2, 2, 2, 2, 2, 2, 2, 2,138,138,138,138,
+ 138,138,138,138,138,138, 2, 2, 2, 2, 2, 2,143,143,143,143,
+ 143,143, 2,143,143, 2,143,143,143,143,143,143,143,143,143,143,
+ 143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+ 143,143,143,143,143,143,143,143,143,143,143, 2,143,143, 2,143,
+ 143,143,143,143,143, 2, 2, 2, 2, 2, 2, 2,143,143,143,143,
+ 143,143,143,143,143,143, 2, 2, 2, 2, 2, 2,145,145,145,145,
+ 145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+ 145,145,145,145,145, 2, 2, 2, 2, 2, 2, 2, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 22, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
@@ -2452,12 +2795,12 @@ _hb_ucd_u8[31814] =
119,119, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,119,119,119,119,
119,119,119,119,119,119, 2,119,119,119,119,119,119,119, 2,119,
119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
- 119,119,119,119, 2, 2, 2, 2, 2,119,119,119, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 2, 2, 2, 2, 2, 99, 99, 99, 99,
+ 119,119,119,119, 2, 2, 2, 2, 2,119,119,119,146,146,146,146,
+ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+ 146,146,146,146,146,146,146, 2, 2, 2, 2, 2, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 2, 2, 2, 2, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 2, 2, 2, 2, 2, 2, 2, 99,136, 12, 0, 0,
+ 99, 99, 99, 99, 2, 2, 2, 2, 2, 2, 2, 99,136,139, 0, 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,136,136,136,136,
136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
136,136,136,136, 2, 2, 2, 2, 2, 2, 2, 2,136,136,136, 2,
@@ -2465,7 +2808,9 @@ _hb_ucd_u8[31814] =
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 15, 15, 15, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 17, 17, 17, 17, 2, 2, 2, 2, 2, 2, 2, 2,105,105,105,105,
+ 17, 17, 17, 17, 2, 2, 2, 2, 2, 2, 2, 2,139,139,139,139,
+ 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+ 139,139,139,139,139,139,139,139, 2, 2, 2, 2,105,105,105,105,
105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
105,105,105,105,105,105,105, 2, 2, 2, 2, 2,105,105,105,105,
105,105,105,105,105,105,105,105,105, 2, 2, 2,105,105,105,105,
@@ -2495,10 +2840,13 @@ _hb_ucd_u8[31814] =
131,131,131,131,131,131,131,131,131,131,131,131, 56, 56, 56, 56,
56, 56, 56, 2, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 2, 2, 56, 56, 56, 56, 56, 56, 56, 2, 56,
- 56, 2, 56, 56, 56, 56, 56, 2, 2, 2, 2, 2, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 2, 2, 2, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 2, 2, 2, 2, 13, 13, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 2, 2, 2, 2, 2, 14,113,113,113,113,
+ 56, 2, 56, 56, 56, 56, 56, 2, 2, 2, 2, 2,151,151,151,151,
+ 151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+ 151,151,151,151,151,151,151,151,151, 2, 2, 2,151,151,151,151,
+ 151,151,151,151,151,151,151,151,151,151, 2, 2,151,151,151,151,
+ 151,151,151,151,151,151, 2, 2, 2, 2,151,151,152,152,152,152,
+ 152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+ 152,152,152,152,152,152, 2, 2, 2, 2, 2,152,113,113,113,113,
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
113, 2, 2,113,113,113,113,113,113,113,113,113,113,113,113,113,
113,113,113, 2, 2, 2, 2, 2, 2, 2, 2, 2,132,132,132,132,
@@ -2521,6 +2869,7 @@ _hb_ucd_u8[31814] =
2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0,
0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
@@ -3008,102 +3357,102 @@ _hb_ucd_u16[11168] =
403, 404, 405, 406, 407, 407, 408, 408, 409, 409, 45, 45, 410, 410, 411, 412,
413, 413, 413, 414, 415, 416, 417, 418, 419, 420, 421, 45, 45, 45, 45, 45,
422, 422, 422, 422, 423, 45, 45, 45, 424, 424, 424, 425, 424, 424, 424, 426,
- 0, 0, 427, 285, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 27, 428, 45, 45, 45, 45, 45, 45, 45, 45,
- 8, 8, 429, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 27, 430,
- 431, 431, 431, 431, 432, 433, 431, 434, 435, 435, 435, 435, 436, 437, 438, 439,
- 440, 440, 440, 441, 442, 443, 443, 444, 445, 445, 445, 445, 446, 445, 447, 448,
- 449, 450, 449, 451, 45, 45, 45, 45, 452, 453, 454, 455, 455, 455, 456, 457,
- 458, 459, 460, 461, 462, 463, 464, 465, 45, 45, 45, 45, 45, 45, 45, 45,
- 466, 466, 466, 466, 466, 467, 45, 45, 468, 468, 468, 468, 469, 470, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 471, 471, 471, 472, 471, 473, 45, 45,
- 474, 474, 474, 474, 475, 476, 477, 45, 478, 478, 478, 479, 480, 45, 45, 45,
- 481, 482, 483, 481, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 17, 17, 17, 484, 45, 45, 45, 45, 45, 45, 485, 485, 485, 485, 485, 486,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 487, 488, 488, 487, 489, 45,
- 14, 14, 14, 14, 490, 49, 49, 49, 49, 49, 491, 45, 492, 492, 492, 493,
+ 427, 427, 428, 429, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 27, 430, 45, 45, 45, 45, 45, 45, 45, 45,
+ 431, 431, 432, 433, 433, 434, 45, 45, 45, 45, 45, 45, 45, 45, 435, 436,
+ 437, 437, 437, 437, 438, 439, 437, 440, 441, 441, 441, 441, 442, 443, 444, 445,
+ 446, 446, 446, 447, 448, 449, 449, 450, 451, 451, 451, 451, 452, 451, 453, 454,
+ 455, 456, 455, 457, 45, 45, 45, 45, 458, 459, 460, 461, 461, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 45, 45, 45, 45, 45, 45, 45, 45,
+ 472, 472, 472, 472, 472, 473, 45, 45, 474, 474, 474, 474, 475, 476, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 477, 477, 477, 478, 477, 479, 45, 45,
+ 480, 480, 480, 480, 481, 482, 483, 45, 484, 484, 484, 485, 486, 45, 45, 45,
+ 487, 488, 489, 487, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 490, 490, 490, 491, 45, 45, 45, 45, 45, 45, 492, 492, 492, 492, 492, 493,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 494, 495, 495, 494, 496, 45,
+ 497, 497, 497, 497, 498, 499, 499, 499, 499, 499, 500, 45, 501, 501, 501, 502,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 494, 495, 495, 496, 497, 495, 498, 499, 499, 500, 501, 502, 45, 45, 45, 45,
- 503, 139, 139, 504, 505, 506, 507, 11, 349, 508, 509, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 510, 511,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 512, 512, 512, 513,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 515, 45, 45, 45, 45, 45, 45,
- 514, 514, 514, 514, 514, 514, 516, 517, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 518, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 520, 521, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 503, 504, 504, 505, 506, 504, 507, 508, 508, 509, 510, 511, 45, 45, 45, 45,
+ 512, 513, 513, 514, 515, 516, 517, 518, 519, 520, 521, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 522, 523,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 524, 524, 524, 525,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 527, 45, 45, 45, 45, 45, 45,
+ 526, 526, 526, 526, 526, 526, 528, 529, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 530, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531,
+ 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531,
+ 531, 531, 532, 533, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
- 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
- 522, 522, 522, 522, 523, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 535, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
- 277, 277, 277, 524, 525, 526, 527, 45, 45, 45, 45, 45, 45, 528, 529, 530,
- 531, 531, 531, 531, 532, 533, 534, 535, 531, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 536, 536, 536, 536, 536, 537, 45, 45, 45, 45, 45, 45,
- 538, 538, 538, 538, 539, 538, 538, 538, 540, 538, 45, 45, 45, 45, 541, 45,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 543,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 544,
+ 277, 277, 277, 536, 537, 538, 539, 45, 45, 45, 45, 45, 45, 540, 541, 542,
+ 543, 543, 543, 543, 544, 545, 546, 547, 543, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 548, 548, 548, 548, 548, 549, 45, 45, 45, 45, 45, 45,
+ 550, 550, 550, 550, 551, 550, 550, 550, 552, 550, 45, 45, 45, 45, 553, 45,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 555,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 556,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 545, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 546, 45, 45, 45, 547, 548, 142, 142, 142, 142, 142, 142, 142, 142, 142,
- 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 317,
+ 557, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 558, 45, 45, 45, 559, 560, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 562,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 549, 549, 549, 549, 549, 549, 550, 551, 552, 553, 267, 45, 45, 45, 45, 45,
+ 563, 563, 563, 563, 563, 563, 564, 565, 566, 567, 267, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554,
- 0, 0, 555, 0, 0, 0, 556, 557, 558, 0, 559, 0, 0, 0, 560, 45,
- 11, 11, 11, 11, 561, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 267,
- 0, 0, 0, 0, 0, 234, 0, 560, 45, 45, 45, 45, 45, 45, 45, 45,
- 0, 0, 0, 0, 0, 225, 0, 0, 0, 562, 563, 564, 565, 0, 0, 0,
- 566, 567, 0, 568, 569, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568,
+ 0, 0, 569, 0, 0, 0, 570, 571, 572, 0, 573, 0, 0, 0, 574, 45,
+ 11, 11, 11, 11, 575, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 267,
+ 0, 0, 0, 0, 0, 234, 0, 574, 45, 45, 45, 45, 45, 45, 45, 45,
+ 0, 0, 0, 0, 0, 225, 0, 0, 0, 576, 577, 578, 579, 0, 0, 0,
+ 580, 581, 0, 582, 583, 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 0,
- 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572,
- 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572,
- 572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 575, 45, 45, 45, 45, 45,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 0, 0, 0,
+ 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
+ 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
+ 586, 586, 586, 586, 586, 586, 586, 586, 587, 588, 589, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 576, 577, 578, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 248, 248, 579, 318, 580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 21, 21, 21, 581,
+ 590, 591, 592, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 593, 593, 594, 595, 596, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 597, 597, 597, 598,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 584, 45, 45,
- 585, 585, 585, 585, 586, 587, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 334, 0, 0, 0, 588, 45, 45, 45, 45,
- 334, 0, 0, 589, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 590, 27, 591, 592, 593, 594, 595, 596, 597, 598, 599, 598, 45, 45, 45, 324,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 601, 45, 45,
+ 602, 602, 602, 602, 603, 604, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 334, 0, 0, 0, 605, 45, 45, 45, 45,
+ 334, 0, 0, 606, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 607, 27, 608, 609, 610, 611, 612, 613, 614, 615, 616, 615, 45, 45, 45, 324,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 0, 0, 252, 0, 0, 0, 0, 0, 0, 267, 227, 334, 334, 334, 0, 554,
- 600, 0, 0, 0, 0, 0, 600, 0, 0, 0, 600, 45, 45, 45, 601, 0,
- 602, 0, 0, 252, 560, 603, 554, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 0, 0, 252, 0, 0, 0, 0, 0, 0, 267, 227, 334, 334, 334, 0, 568,
+ 617, 0, 0, 0, 0, 0, 617, 0, 0, 0, 617, 45, 45, 45, 618, 0,
+ 619, 0, 0, 252, 574, 620, 568, 45, 45, 45, 45, 45, 45, 45, 45, 45,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, 600, 235,
- 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 560, 252, 45,
- 252, 0, 0, 0, 427, 285, 0, 0, 427, 0, 589, 45, 45, 45, 45, 45,
- 604, 0, 0, 0, 0, 0, 0, 605, 0, 0, 606, 0, 607, 0, 0, 0,
- 0, 0, 0, 0, 0, 267, 589, 608, 609, 554, 45, 45, 45, 45, 45, 45,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 617, 235,
+ 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 574, 252, 45,
+ 252, 0, 0, 0, 621, 285, 0, 0, 621, 0, 606, 45, 45, 45, 45, 45,
+ 622, 0, 0, 0, 0, 0, 0, 623, 0, 0, 624, 0, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 267, 606, 626, 627, 568, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 610, 45, 45,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 628, 45, 45,
248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 611, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 629, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
248, 318, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 612, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 630, 248, 248, 248, 248, 248,
248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 613, 45,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 631, 45,
248, 318, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 614, 45, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45,
+ 632, 45, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3472,14 +3821,14 @@ _hb_ucd_sc (unsigned u)
static inline uint_fast16_t
_hb_ucd_dm (unsigned u)
{
- return u<195102u?_hb_ucd_u16[6048+(((_hb_ucd_u8[28764+(u>>6)])<<6)+((u)&63u))]:0;
+ return u<195102u?_hb_ucd_u16[6048+(((_hb_ucd_u8[29052+(u>>6)])<<6)+((u)&63u))]:0;
}
-#else
+#elif !defined(HB_NO_UCD_UNASSIGNED)
static const uint8_t
-_hb_ucd_u8[16998] =
+_hb_ucd_u8[17198] =
{
0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 7, 7, 7, 7, 7, 7,
7, 7, 7, 9, 10, 11, 7, 7, 7, 7, 12, 13, 14, 14, 14, 15,
@@ -4142,21 +4491,21 @@ _hb_ucd_u8[16998] =
97, 97,172,173,174,175,176,176,176,176,176,176,176,176,176,176,
176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
176,176,176,176,176,177,176,176,176,176,176,178, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97,179,180,181, 32, 32,182, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,183,184,
- 97, 97, 97, 97, 97, 97, 59,185,186,187,188,189,190, 97,191,192,
- 193, 59, 59,194, 59,195,196,196,196,196,196,197, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97,198, 97,199, 97, 97,200, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97,201,202,203, 97, 97, 97, 97, 97,204,205,
- 206, 97,207,208, 97, 97,209,210,211,212,213, 97, 59, 59, 59, 59,
- 59, 59, 59,214,215,216,217,218,219,220,221,222, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97,179,180,181,182,182,183, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,184,185,
+ 97, 97, 97, 97, 97, 97, 59,186,187,188,189,190,191, 97,192,193,
+ 194, 59, 59,195, 59,196,197,197,197,197,197,198, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97,199, 97,200, 97, 97,201, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97,202,203,204, 97, 97, 97, 97, 97,205,206,
+ 207, 97,208,209, 97, 97,210,211,212,213,214, 97, 59, 59, 59, 59,
+ 59, 59, 59,215,216,217,218,219,220,221,222,223, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
- 70, 70, 70,223, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
- 70, 70, 70, 70,224, 70,225, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70,224, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70,225, 70,226, 70, 70, 70, 70, 70, 70, 70, 70, 70,
70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
- 70, 70, 70,226, 70, 70, 70, 70, 70, 70, 70, 70, 70,227, 97, 97,
- 97, 97, 97, 97, 97, 97, 70, 70, 70, 70,228, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97,229, 97,230,231, 0, 1, 2, 2, 0, 1,
+ 70, 70, 70,227, 70, 70, 70, 70, 70, 70, 70, 70, 70,228, 97, 97,
+ 97, 97, 97, 97, 97, 97, 70, 70, 70, 70,229, 97, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97,230, 97,231,232, 0, 1, 2, 2, 0, 1,
2, 2, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 19, 19,
@@ -4386,49 +4735,58 @@ _hb_ucd_u8[16998] =
2, 2, 2, 2, 2, 2, 2,122,122,122,122, 2, 2, 2, 2,122,
122,122,122,122,122,122, 89, 89, 89, 89, 89, 89, 89, 89, 89, 2,
2, 2, 2, 2, 2, 2,130,130,130,130,130,130,130,130,130,130,
- 130, 2, 2, 2, 2, 2, 2, 2,130,130,130,130,130,130, 3, 3,
- 3, 3, 3, 3, 3, 2, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
- 94, 94, 94, 94, 2, 2, 2, 2, 94, 94, 94, 94, 94, 94, 2, 2,
- 2, 2, 2, 2, 2, 94, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 85, 2, 2,101,101,
- 101,101,101,101,101,101,101, 2, 2, 2, 2, 2, 2, 2,101,101,
- 2, 2, 2, 2, 2, 2, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 96, 2, 96, 96, 96, 96, 96, 96, 96, 96, 96, 2,111,111,
- 111,111,111,111,111,111,111,111,111,111,111,111,111, 2,100,100,
- 100,100,100,100,100,100,100,100,100,100,100,100, 2, 2, 2, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2,108,108,
- 108,108,108,108,108,108,108,108, 2,108,108,108,108,108,108,108,
- 108,108,108,108,108, 2,129,129,129,129,129,129,129, 2,129, 2,
- 129,129,129,129, 2,129,129,129,129,129,129,129,129,129,129,129,
- 129,129,129,129, 2,129,129,129, 2, 2, 2, 2, 2, 2,109,109,
- 109,109,109,109,109,109,109,109,109, 2, 2, 2, 2, 2,109,109,
- 2, 2, 2, 2, 2, 2,107,107,107,107, 2,107,107,107,107,107,
- 107,107,107, 2, 2,107,107, 2, 2,107,107,107,107,107,107,107,
- 107,107,107,107,107,107,107, 2,107,107,107,107,107,107,107, 2,
- 107,107, 2,107,107,107,107,107, 2, 1,107,107,107,107,107, 2,
- 2,107,107,107, 2, 2,107, 2, 2, 2, 2, 2, 2,107, 2, 2,
- 2, 2, 2,107,107,107,107,107,107,107, 2, 2,107,107,107,107,
- 107,107,107, 2, 2, 2,137,137,137,137,137,137,137,137,137,137,
- 2,137, 2,137,137,137,124,124,124,124,124,124,124,124,124,124,
- 2, 2, 2, 2, 2, 2,123,123,123,123,123,123,123,123,123,123,
- 123,123,123,123, 2, 2,114,114,114,114,114,114,114,114,114,114,
- 114,114,114, 2, 2, 2,114,114, 2, 2, 2, 2, 2, 2, 32, 32,
- 32, 32, 32, 2, 2, 2,102,102,102,102,102,102,102,102,102, 2,
- 2, 2, 2, 2, 2, 2,102,102, 2, 2, 2, 2, 2, 2,126,126,
- 126,126,126,126,126,126,126,126,126, 2, 2,126,126,126,126,126,
- 126,126, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2,125,125,
+ 130, 2, 2, 2, 2, 2, 2, 2,130,130,130,130,130,130,144,144,
+ 144,144,144,144,144,144,144,144, 2, 2, 2, 2, 2, 2, 3, 3,
+ 3, 3, 3, 3, 3, 2,147,147,147,147,147,147,147,147,148,148,
+ 148,148,148,148,148,148,148,148, 2, 2, 2, 2, 2, 2,149,149,
+ 149,149,149,149,149,149,149,149,149,149,149,149,149, 2, 94, 94,
+ 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 2, 2, 2, 2,
+ 94, 94, 94, 94, 94, 94, 2, 2, 2, 2, 2, 2, 2, 94, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 85, 2, 2,101,101,101,101,101,101,101,101,101, 2,
+ 2, 2, 2, 2, 2, 2,101,101, 2, 2, 2, 2, 2, 2, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 2, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 2,111,111,111,111,111,111,111,111,111,111,
+ 111,111,111,111,111, 2,100,100,100,100,100,100,100,100,100,100,
+ 100,100,100,100, 2, 2, 2, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 2, 2, 2,108,108,108,108,108,108,108,108,108,108,
+ 2,108,108,108,108,108,108,108,108,108,108,108,108, 2,129,129,
+ 129,129,129,129,129, 2,129, 2,129,129,129,129, 2,129,129,129,
+ 129,129,129,129,129,129,129,129,129,129,129,129, 2,129,129,129,
+ 2, 2, 2, 2, 2, 2,109,109,109,109,109,109,109,109,109,109,
+ 109, 2, 2, 2, 2, 2,109,109, 2, 2, 2, 2, 2, 2,107,107,
+ 107,107, 2,107,107,107,107,107,107,107,107, 2, 2,107,107, 2,
+ 2,107,107,107,107,107,107,107,107,107,107,107,107,107,107, 2,
+ 107,107,107,107,107,107,107, 2,107,107, 2,107,107,107,107,107,
+ 2, 1,107,107,107,107,107, 2, 2,107,107,107, 2, 2,107, 2,
+ 2, 2, 2, 2, 2,107, 2, 2, 2, 2, 2,107,107,107,107,107,
+ 107,107, 2, 2,107,107,107,107,107,107,107, 2, 2, 2,137,137,
+ 137,137,137,137,137,137,137,137, 2,137, 2,137,137,137,124,124,
+ 124,124,124,124,124,124,124,124, 2, 2, 2, 2, 2, 2,123,123,
+ 123,123,123,123,123,123,123,123,123,123,123,123, 2, 2,114,114,
+ 114,114,114,114,114,114,114,114,114,114,114, 2, 2, 2,114,114,
+ 2, 2, 2, 2, 2, 2, 32, 32, 32, 32, 32, 2, 2, 2,102,102,
+ 102,102,102,102,102,102,102, 2, 2, 2, 2, 2, 2, 2,102,102,
+ 2, 2, 2, 2, 2, 2,126,126,126,126,126,126,126,126,126,126,
+ 126, 2, 2,126,126,126,126,126,126,126, 2, 2, 2, 2,142,142,
+ 142,142,142,142,142,142,142,142,142,142, 2, 2, 2, 2,125,125,
125,125,125,125,125,125,125,125,125, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2,125, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 2, 2, 2, 7, 7, 7, 2, 2, 2, 2, 2,121,121,
- 121,121,121,121,121,121,121, 2, 2, 2, 2, 2, 2, 2,133,133,
- 133,133,133,133,133,133,133, 2,133,133,133,133,133,133,133,133,
- 133,133,133,133,133, 2,133,133,133,133,133,133, 2, 2,133,133,
- 133,133,133, 2, 2, 2,134,134,134,134,134,134,134,134, 2, 2,
- 134,134,134,134,134,134, 2,134,134,134,134,134,134,134,134,134,
- 134,134,134,134,134, 2, 8, 8, 8, 8, 8, 8, 8, 2, 8, 8,
- 2, 8, 8, 8, 8, 8, 2, 2, 8, 2, 8, 8, 2, 8, 8, 8,
- 2, 2, 2, 2, 2, 2, 9, 9, 9, 9, 9, 9, 2, 9, 9, 2,
- 9, 9, 9, 9, 9, 9, 9, 9, 2, 2, 2, 2, 2, 2, 22, 22,
+ 2, 2, 2, 2, 2,125,150,150,150,150,150,150,150,150, 2, 2,
+ 150,150,150,150,150,150,150,150,150,150,150, 2, 2, 2,141,141,
+ 141,141,141,141,141,141,140,140,140,140,140,140,140,140,140,140,
+ 140, 2, 2, 2, 2, 2,121,121,121,121,121,121,121,121,121, 2,
+ 2, 2, 2, 2, 2, 2,133,133,133,133,133,133,133,133,133, 2,
+ 133,133,133,133,133,133,133,133,133,133,133,133,133, 2,133,133,
+ 133,133,133,133, 2, 2,133,133,133,133,133, 2, 2, 2,134,134,
+ 134,134,134,134,134,134, 2, 2,134,134,134,134,134,134, 2,134,
+ 134,134,134,134,134,134,134,134,134,134,134,134,134, 2,138,138,
+ 138,138,138,138,138, 2,138,138, 2,138,138,138,138,138,138,138,
+ 138,138,138,138,138,138, 2, 2,138, 2,138,138, 2,138,138,138,
+ 2, 2, 2, 2, 2, 2,143,143,143,143,143,143, 2,143,143, 2,
+ 143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+ 143,143,143,143,143, 2,143,143, 2,143,143,143,143,143,143, 2,
+ 2, 2, 2, 2, 2, 2,143,143, 2, 2, 2, 2, 2, 2,145,145,
+ 145,145,145,145,145,145,145, 2, 2, 2, 2, 2, 2, 2, 22, 22,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 22, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 2, 2, 2, 2, 2, 2, 63, 63,
63, 63, 63, 63, 63, 2, 63, 63, 63, 63, 63, 2, 2, 2, 63, 63,
@@ -4439,28 +4797,31 @@ _hb_ucd_u8[16998] =
115,115,115,115,115, 2,115,115, 2, 2, 2, 2,115,115,103,103,
103,103,103,103,103,103,103,103,103,103,103,103, 2, 2,119,119,
119,119,119,119,119,119,119,119,119,119,119,119, 2, 2,119,119,
- 2,119,119,119,119,119, 2, 2, 2, 2, 2,119,119,119, 11, 11,
- 11, 2, 2, 2, 2, 2, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 2, 2, 2, 2, 99, 2, 2, 2, 2, 2, 2, 2, 99,136, 12,
- 0, 0, 2, 2, 2, 2,136,136,136,136,136,136,136,136,136,136,
- 136, 2, 2, 2, 2, 2, 17, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17, 17, 17, 17,105,105,
- 105,105,105,105,105,105,105,105,105, 2, 2, 2, 2, 2,105,105,
- 105,105,105, 2, 2, 2,105, 2, 2, 2, 2, 2, 2, 2,105,105,
- 2, 2,105,105,105,105, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
- 1, 1, 1, 1, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0,
- 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2,
- 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,131,131,
- 131,131,131,131,131,131,131,131,131,131, 2, 2, 2, 2, 2, 2,
- 2,131,131,131,131,131, 2,131,131,131,131,131,131,131, 56, 2,
- 2, 56, 56, 56, 56, 56, 56, 56, 2, 56, 56, 2, 56, 56, 56, 56,
- 56, 2, 2, 2, 2, 2, 13, 13, 13, 13, 13, 2, 2, 2, 13, 13,
- 2, 2, 2, 2, 13, 13, 14, 14, 2, 2, 2, 2, 2, 14,113,113,
+ 2,119,119,119,119,119, 2, 2, 2, 2, 2,119,119,119,146,146,
+ 146,146,146,146,146,146,146,146,146, 2, 2, 2, 2, 2, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99, 99, 2, 2, 2, 2, 99, 2, 2,
+ 2, 2, 2, 2, 2, 99,136,139, 0, 0, 2, 2, 2, 2,136,136,
+ 136,136,136,136,136,136,136,136,136, 2, 2, 2, 2, 2, 17, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 17, 17, 17, 17,139,139,139,139,139,139,139,139,139,139,
+ 139,139, 2, 2, 2, 2,105,105,105,105,105,105,105,105,105,105,
+ 105, 2, 2, 2, 2, 2,105,105,105,105,105, 2, 2, 2,105, 2,
+ 2, 2, 2, 2, 2, 2,105,105, 2, 2,105,105,105,105, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
+ 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 2, 2, 0,
+ 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0,
+ 0, 0, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2,
+ 0, 0, 0, 0, 0, 0,131,131,131,131,131,131,131,131,131,131,
+ 131,131, 2, 2, 2, 2, 2, 2, 2,131,131,131,131,131, 2,131,
+ 131,131,131,131,131,131, 56, 2, 2, 56, 56, 56, 56, 56, 56, 56,
+ 2, 56, 56, 2, 56, 56, 56, 56, 56, 2, 2, 2, 2, 2,151,151,
+ 151,151,151,151,151,151,151,151,151,151,151, 2, 2, 2,151,151,
+ 151,151,151,151, 2, 2,151,151, 2, 2, 2, 2,151,151,152,152,
+ 152,152,152,152,152,152,152,152, 2, 2, 2, 2, 2,152,113,113,
113,113,113,113,113,113,113,113,113,113,113, 2, 2,113,113,113,
113,113,113,113,113, 2,132,132,132,132,132,132,132,132,132,132,
132,132, 2, 2, 2, 2,132,132, 2, 2, 2, 2,132,132, 0, 0,
@@ -4472,33 +4833,31 @@ _hb_ucd_u8[16998] =
2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3,
3, 3, 2, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 15, 0,
0, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 13, 13,
- 13, 13, 13, 13, 13, 2, 13, 2, 2, 2, 2, 2, 2, 2, 2, 0,
- 2, 2, 2, 2, 2, 2, 16, 50, 84,118, 88, 89, 90, 85, 85, 85,
+ 13, 13, 13, 13, 13, 2, 13, 13, 13, 13, 13, 2, 2, 2, 13, 2,
+ 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 16, 50,
+ 84,118, 88, 89, 90, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 91, 85, 85,
+ 220, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 94, 85, 85, 85, 85, 85, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 91, 85, 85,220, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 94, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 25, 26,
- 27, 28, 29, 30, 0, 0, 31, 32, 0, 33, 0, 34, 0, 35, 0, 0,
- 0, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 0, 31, 32,
+ 0, 33, 0, 34, 0, 35, 0, 0, 0, 0, 36, 37, 38, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 0, 45, 0, 0, 0, 0,
- 0, 0, 46, 47, 0, 0, 0, 0, 0, 48, 0, 49, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 0, 0, 52,
- 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0,
- 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0,
- 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 59, 60, 61, 62, 63,
- 64, 65, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
+ 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 43, 44, 0, 45, 0, 0, 0, 0, 0, 0, 46, 47, 0, 0, 0, 0,
+ 0, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 50, 51, 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, 0, 0,
+ 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0,
+ 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 58, 59, 60, 61, 62, 63, 64, 65, 0, 0, 0, 0, 0, 0,
+ 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4506,47 +4865,49 @@ _hb_ucd_u8[16998] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, 70, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99,100,101,102,103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0,105,
- 106, 0,107, 0, 0, 0,108, 0,109, 0,110, 0,111,112,113, 0,
- 114, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68,
+ 0, 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,103, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 104, 0, 0, 0, 0, 0, 0,105,106, 0,107, 0, 0, 0,108, 0,
+ 109, 0,110, 0,111,112,113, 0,114, 0, 0, 0,115, 0, 0, 0,
+ 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,119,120,121, 0,122,
- 123,124,125,126, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,118,119,120,121, 0,122,123,124,125,126, 0,127, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128,129,130,131,132,133,134,135,136,137,
- 138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,
- 154,155,156,157, 0, 0, 0,158,159,160,161, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162,
- 163, 0, 0, 0, 0, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,129,
+ 130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,
+ 146,147,148,149,150,151,152,153,154,155,156,157, 0, 0, 0,158,
+ 159,160,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0,162,163, 0, 0, 0, 0, 0, 0, 0,
+ 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,169, 0, 0, 0,
- 0,170,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,172,173,174,175,176,177,178,179,180,181,
- 182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,
- 198,199,200,201,202,203,204,205, 0, 0, 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, 2, 3, 4,
+ 0, 0, 0,168,169, 0, 0, 0, 0,170,171, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,173,
+ 174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,
+ 190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,
+ 0, 0, 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, 2, 3, 4,
};
static const uint16_t
-_hb_ucd_u16[8928] =
+_hb_ucd_u16[8944] =
{
0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
13, 13, 13, 14, 15, 13, 13, 16, 17, 18, 19, 20, 21, 22, 13, 23,
@@ -4799,105 +5160,106 @@ _hb_ucd_u16[8928] =
450, 450, 451, 452, 26, 453, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
454, 454, 454, 454, 454, 454, 454, 454, 454, 455, 26, 26, 26, 26, 26, 26,
456, 456, 456, 456, 456, 456, 457, 26, 456, 456, 456, 456, 456, 456, 457, 458,
- 0, 0, 0, 0, 0, 26, 0, 316, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 31, 31, 31, 459,
- 9, 9, 9, 9, 9, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 31, 31, 459, 26,
- 460, 460, 460, 460, 460, 460, 460, 460, 460, 461, 462, 460, 460, 460, 26, 463,
- 464, 464, 464, 464, 464, 464, 464, 464, 465, 466, 467, 467, 467, 468, 467, 469,
- 470, 470, 470, 470, 470, 470, 471, 470, 472, 26, 473, 473, 473, 473, 474, 26,
- 475, 475, 475, 475, 475, 475, 475, 475, 475, 476, 475, 475, 477, 140, 478, 26,
- 479, 479, 480, 479, 479, 479, 479, 481, 26, 26, 26, 26, 26, 26, 26, 26,
- 482, 483, 484, 485, 484, 486, 487, 487, 487, 487, 487, 487, 487, 488, 487, 489,
- 490, 491, 492, 493, 493, 494, 495, 496, 491, 497, 498, 499, 500, 501, 501, 26,
- 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 503, 26, 26, 26, 26,
- 504, 504, 504, 504, 504, 504, 504, 504, 504, 26, 504, 505, 26, 26, 26, 26,
- 506, 506, 506, 506, 506, 506, 507, 506, 506, 506, 506, 507, 26, 26, 26, 26,
- 508, 508, 508, 508, 508, 508, 508, 508, 509, 26, 508, 510, 201, 511, 26, 26,
- 512, 512, 512, 512, 512, 512, 512, 513, 512, 514, 26, 26, 26, 26, 26, 26,
- 515, 515, 515, 516, 515, 517, 515, 515, 26, 26, 26, 26, 26, 26, 26, 26,
- 21, 21, 21, 21, 21, 21, 21, 518, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 520, 521,
- 26, 26, 26, 26, 60, 522, 60, 60, 60, 60, 60, 522, 523, 26, 26, 26,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 26, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 524, 26, 26, 26, 525, 525, 525, 525, 525, 525, 525, 526,
- 527, 528, 527, 527, 527, 527, 529, 527, 530, 26, 527, 527, 527, 531, 532, 532,
- 532, 532, 533, 532, 532, 534, 535, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 536, 537, 167, 167, 167, 167, 536, 538, 167, 26, 167, 539, 540, 541, 14, 14,
- 14, 257, 15, 375, 14, 542, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 84, 84, 84, 89,
- 26, 26, 26, 26, 26, 26, 26, 26, 109, 109, 109, 109, 109, 109, 543, 544,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 545, 545, 545, 546, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 547, 548, 26,
- 545, 545, 545, 545, 545, 545, 545, 545, 549, 26, 26, 26, 26, 26, 26, 26,
- 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
- 550, 550, 550, 550, 550, 551, 550, 552, 26, 26, 26, 26, 26, 26, 26, 26,
- 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553,
- 553, 553, 553, 553, 553, 553, 553, 553, 554, 26, 26, 26, 26, 26, 26, 26,
+ 459, 459, 459, 459, 459, 26, 459, 460, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 31, 31, 31, 461,
+ 462, 462, 462, 462, 462, 26, 463, 463, 463, 463, 463, 464, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 465, 465, 466, 26,
+ 467, 467, 467, 467, 467, 467, 467, 467, 467, 468, 469, 467, 467, 467, 26, 470,
+ 471, 471, 471, 471, 471, 471, 471, 471, 472, 473, 474, 474, 474, 475, 474, 476,
+ 477, 477, 477, 477, 477, 477, 478, 477, 479, 26, 480, 480, 480, 480, 481, 26,
+ 482, 482, 482, 482, 482, 482, 482, 482, 482, 483, 482, 482, 484, 140, 485, 26,
+ 486, 486, 487, 486, 486, 486, 486, 488, 26, 26, 26, 26, 26, 26, 26, 26,
+ 489, 490, 491, 492, 491, 493, 494, 494, 494, 494, 494, 494, 494, 495, 494, 496,
+ 497, 498, 499, 500, 500, 501, 502, 503, 498, 504, 505, 506, 507, 508, 508, 26,
+ 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 510, 26, 26, 26, 26,
+ 511, 511, 511, 511, 511, 511, 511, 511, 511, 26, 511, 512, 26, 26, 26, 26,
+ 513, 513, 513, 513, 513, 513, 514, 513, 513, 513, 513, 514, 26, 26, 26, 26,
+ 515, 515, 515, 515, 515, 515, 515, 515, 516, 26, 515, 517, 201, 518, 26, 26,
+ 519, 519, 519, 519, 519, 519, 519, 520, 519, 521, 26, 26, 26, 26, 26, 26,
+ 522, 522, 522, 523, 522, 524, 522, 522, 26, 26, 26, 26, 26, 26, 26, 26,
+ 525, 525, 525, 525, 525, 525, 525, 526, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 528, 529,
+ 26, 26, 26, 26, 530, 531, 530, 530, 530, 530, 530, 531, 532, 26, 26, 26,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 26, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 535, 26, 26, 26, 536, 536, 536, 536, 536, 536, 536, 537,
+ 538, 539, 538, 538, 538, 538, 540, 538, 541, 26, 538, 538, 538, 542, 543, 543,
+ 543, 543, 544, 543, 543, 545, 546, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 547, 548, 549, 549, 549, 549, 547, 550, 549, 26, 549, 551, 552, 553, 554, 554,
+ 554, 555, 556, 557, 554, 558, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 559, 559, 559, 560,
+ 26, 26, 26, 26, 26, 26, 26, 26, 109, 109, 109, 109, 109, 109, 561, 562,
+ 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
+ 563, 563, 563, 564, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 565, 566, 26,
+ 563, 563, 563, 563, 563, 563, 563, 563, 567, 26, 26, 26, 26, 26, 26, 26,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+ 568, 568, 568, 568, 568, 569, 568, 570, 26, 26, 26, 26, 26, 26, 26, 26,
+ 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571,
+ 571, 571, 571, 571, 571, 571, 571, 571, 572, 26, 26, 26, 26, 26, 26, 26,
309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 555, 556, 556, 556, 557, 556, 558, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 559, 559, 559, 560, 560, 26,
- 561, 561, 561, 561, 561, 561, 561, 561, 562, 26, 561, 563, 563, 561, 561, 564,
- 561, 561, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 72, 72, 72, 72, 72, 72, 72, 72,
- 72, 72, 72, 565, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 566, 566, 566, 566, 566, 566,
- 566, 568, 566, 566, 26, 26, 26, 26, 26, 26, 26, 26, 569, 26, 26, 26,
- 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
- 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 26,
- 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571, 26,
- 572, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
+ 309, 309, 309, 309, 309, 309, 309, 573, 574, 574, 574, 575, 574, 576, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 577, 577, 577, 578, 578, 26,
+ 579, 579, 579, 579, 579, 579, 579, 579, 580, 26, 579, 581, 581, 579, 579, 582,
+ 579, 579, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 583, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 583, 584, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 585, 585, 585, 585, 585, 585,
+ 585, 587, 585, 585, 26, 26, 26, 26, 26, 26, 26, 26, 588, 26, 26, 26,
+ 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
+ 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 26,
+ 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 26,
+ 591, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 291, 26, 26, 26, 26, 26, 26, 573, 26, 574, 26, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 346,
- 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 575, 577,
- 575, 578, 575, 579, 284, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 290, 290, 290, 291, 26, 26, 26, 26, 26, 26, 592, 26, 593, 26, 594, 594,
+ 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
+ 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595,
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 597, 596, 598,
+ 596, 599, 596, 600, 284, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 26,
- 0, 0, 0, 0, 262, 361, 0, 0, 0, 0, 0, 0, 580, 581, 0, 582,
- 583, 584, 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, 0, 586, 26, 26,
+ 0, 0, 0, 0, 262, 361, 0, 0, 0, 0, 0, 0, 601, 602, 0, 603,
+ 604, 605, 0, 0, 0, 606, 0, 0, 0, 0, 0, 0, 0, 607, 26, 26,
14, 14, 14, 14, 14, 14, 14, 14, 251, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 284, 26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 26, 0, 0, 0, 586,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 26, 0, 0, 0, 607,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0,
- 0, 0, 0, 259, 587, 588, 0, 589, 590, 0, 0, 0, 0, 0, 0, 0,
- 591, 592, 259, 259, 0, 0, 0, 593, 594, 595, 596, 0, 0, 0, 0, 0,
+ 0, 0, 0, 259, 608, 609, 0, 610, 611, 0, 0, 0, 0, 0, 0, 0,
+ 612, 613, 259, 259, 0, 0, 0, 614, 615, 616, 617, 0, 0, 0, 0, 0,
0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, 0,
- 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597,
- 597, 598, 26, 599, 600, 597, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 274, 273, 273, 601, 602, 603, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 280, 280, 280, 280, 280, 604, 280, 283, 280, 605, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 606,
- 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607,
- 607, 607, 607, 607, 607, 607, 607, 607, 608, 607, 609, 26, 26, 26, 26, 26,
- 610, 610, 610, 610, 610, 610, 610, 610, 610, 611, 610, 612, 26, 26, 26, 26,
+ 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618,
+ 618, 619, 26, 620, 621, 618, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 274, 273, 273, 622, 623, 624, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 625, 625, 625, 625, 625, 626, 625, 627, 625, 628, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 629, 629, 629, 629, 629, 629, 629, 630,
+ 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+ 631, 631, 631, 631, 631, 631, 631, 631, 632, 631, 633, 26, 26, 26, 26, 26,
+ 634, 634, 634, 634, 634, 634, 634, 634, 634, 635, 634, 636, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 361, 0,
- 0, 0, 0, 0, 0, 0, 613, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 0, 0, 0, 0, 0, 0, 637, 26, 26, 26, 26, 26, 26, 26, 26, 26,
361, 0, 0, 0, 0, 0, 0, 272, 26, 26, 26, 26, 26, 26, 26, 26,
- 614, 31, 31, 31, 615, 616, 617, 618, 619, 620, 615, 621, 615, 617, 617, 622,
- 31, 623, 31, 624, 625, 623, 31, 624, 26, 26, 26, 26, 26, 26, 355, 26,
+ 638, 31, 31, 31, 639, 640, 641, 642, 643, 644, 639, 645, 639, 641, 641, 646,
+ 31, 647, 31, 648, 649, 647, 31, 648, 26, 26, 26, 26, 26, 26, 355, 26,
0, 0, 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 284, 26, 0, 262, 361, 0, 361, 0, 361, 0, 0, 0, 272, 26,
- 0, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 0, 0,
- 0, 0, 0, 0, 0, 613, 26, 26, 26, 26, 26, 26, 626, 0, 0, 0,
- 627, 26, 0, 0, 0, 0, 0, 284, 0, 586, 316, 26, 272, 26, 26, 26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 26, 0, 613, 0, 269,
+ 0, 637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 637, 0, 0,
+ 0, 0, 0, 0, 0, 637, 26, 26, 26, 26, 26, 26, 650, 0, 0, 0,
+ 651, 26, 0, 0, 0, 0, 0, 284, 0, 607, 316, 26, 272, 26, 26, 26,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 26, 0, 637, 0, 269,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 586, 0, 284, 26, 26,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, 284, 26, 26,
0, 284, 0, 0, 0, 0, 0, 0, 0, 26, 0, 316, 0, 0, 0, 0,
0, 26, 0, 0, 0, 272, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 0, 590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 595,
- 0, 0, 0, 0, 592, 628, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0,
+ 0, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 616,
+ 0, 0, 0, 0, 613, 652, 0, 0, 0, 613, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 26, 0, 272, 284, 269,
269, 26, 272, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 629, 26, 26, 26, 26, 26,
- 280, 280, 280, 280, 280, 280, 604, 26, 280, 280, 280, 280, 280, 280, 280, 280,
+ 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 653, 26, 26, 26, 26, 26,
+ 280, 280, 280, 280, 280, 280, 654, 26, 280, 280, 280, 280, 280, 280, 280, 280,
280, 280, 280, 283, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
280, 280, 280, 280, 348, 26, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
- 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 630, 26, 26, 26,
+ 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 655, 26, 26, 26,
280, 280, 280, 283, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 631, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 656, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5153,7 +5515,1177 @@ _hb_ucd_sc (unsigned u)
static inline uint_fast16_t
_hb_ucd_dm (unsigned u)
{
- return u<195102u?_hb_ucd_u16[5632+(((_hb_ucd_u8[15974+(((_hb_ucd_b4(15878+_hb_ucd_u8,u>>4>>6))<<6)+((u>>4)&63u))])<<4)+((u)&15u))]:0;
+ return u<195102u?_hb_ucd_u16[5648+(((_hb_ucd_u8[16174+(((_hb_ucd_b4(16078+_hb_ucd_u8,u>>4>>6))<<6)+((u>>4)&63u))])<<4)+((u)&15u))]:0;
+}
+
+
+#else
+
+static const uint8_t
+_hb_ucd_u8[13072] =
+{
+ 0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 6, 5, 5, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 5, 17, 15, 15, 18, 15, 19, 20, 21,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 22, 23,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 24, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 34, 34, 34, 35, 36, 37, 34, 34, 34, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 62, 63, 64, 65, 66, 67, 68, 69, 67, 70, 71,
+ 67, 67, 62, 72, 62, 62, 73, 67, 74, 75, 76, 77, 78, 67, 67, 67,
+ 79, 80, 34, 81, 82, 83, 67, 67, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 84, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 85, 34, 34, 34, 34, 34, 34, 34, 34, 86, 34, 34, 87, 88, 89, 90,
+ 91, 92, 93, 94, 95, 96, 97, 98, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
+ 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+ 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+ 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+ 100,100, 34, 34, 34, 34,101,102, 34, 34,103,104,105,106,107,108,
+ 34, 34,109,110,111,112,113,114,115,116,117,111, 34, 34, 34,111,
+ 118,119,120,121,122,123,124,125, 34,126,127,111,128,111,129, 34,
+ 130,131,132,133,134,135,136,111,137,138,111,139,140,141,142,111,
+ 143,144,111,145,146,147,111,111,148,149,150,151,111,152,111,153,
+ 34, 34, 34, 34, 34, 34, 34, 34,154, 34, 34,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+ 34, 34, 34, 34, 34, 34, 34, 34,155,111,111,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111, 34, 34, 34, 34, 34,111,111,111,
+ 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+ 34, 34, 34, 34,156,157,158, 34,111,111,111,111,159,160,161,162,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34,111,111,111,111,111,111,111,111,111,111,
+ 34, 34, 34, 34, 34, 34,111,111,111,111,111,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111, 34,163,111,111,111,111,111,111,
+ 67, 67,164,165,166,128, 65,111,167,168,169,170,171,172,173,174,
+ 67, 67, 67, 67,175,176,111,111,111,111,111,111,111,111,111,111,
+ 177,111,178,111,111,179,111,111,111,111,111,111,111,111,111,111,
+ 34,180,181,111,111,111,111,111,128,182,183,111, 34,184,111,111,
+ 67, 67,185, 67, 67,111, 67,186, 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67,111,111,111,111,111,111,111,111,111,111,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,111,111,111,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+ 34, 34, 34, 34, 34,111,111,111,111,111,111,111,111,111,111,111,
+ 187,111,177,177,111,111,111,111,111,111,111,111,111,111,111,111,
+ 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 2, 4, 5, 6, 2,
+ 7, 7, 7, 7, 7, 2, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 17, 18, 19, 1, 20, 20, 21, 22, 23, 24, 25,
+ 26, 27, 15, 2, 28, 29, 27, 30, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 31, 11, 11, 11, 32, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 33, 16, 16, 16, 16, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 34, 34, 34, 34, 34, 34, 34, 34, 16, 32, 32, 32,
+ 32, 32, 32, 32, 11, 34, 34, 16, 34, 32, 32, 11, 34, 11, 16, 11,
+ 11, 34, 32, 11, 32, 16, 11, 34, 32, 32, 32, 11, 34, 16, 32, 11,
+ 34, 11, 34, 34, 32, 35, 32, 16, 36, 36, 37, 34, 38, 37, 34, 34,
+ 34, 34, 34, 34, 34, 34, 16, 32, 34, 38, 32, 11, 32, 32, 32, 32,
+ 32, 32, 16, 16, 16, 11, 34, 32, 34, 34, 11, 32, 32, 32, 32, 32,
+ 16, 16, 39, 16, 16, 16, 16, 16, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 41, 41, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41,
+ 40, 40, 42, 41, 41, 41, 42, 42, 41, 41, 41, 41, 41, 41, 41, 41,
+ 43, 43, 43, 43, 43, 43, 43, 43, 32, 32, 42, 32, 16, 44, 16, 10,
+ 41, 41, 41, 45, 11, 11, 11, 11, 34, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 34,
+ 16, 11, 32, 16, 32, 32, 32, 32, 16, 16, 32, 46, 34, 32, 34, 11,
+ 32, 47, 43, 43, 48, 32, 32, 32, 11, 34, 34, 34, 34, 34, 34, 16,
+ 11, 11, 11, 11, 49, 2, 2, 2, 16, 16, 16, 16, 50, 51, 52, 53,
+ 54, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 55,
+ 56, 57, 43, 56, 43, 43, 43, 43, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 58, 2, 2, 2, 2, 2, 2, 59, 59, 59, 8, 9, 60, 2, 61,
+ 43, 43, 43, 43, 43, 57, 59, 2, 62, 36, 36, 36, 36, 63, 43, 43,
+ 7, 7, 7, 7, 7, 2, 2, 36, 64, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 65, 43, 43, 43, 66, 47, 43, 43, 67, 68, 69, 43, 43, 36,
+ 7, 7, 7, 7, 7, 36, 70, 71, 2, 2, 2, 2, 2, 2, 2, 72,
+ 63, 36, 36, 36, 36, 36, 36, 36, 43, 43, 43, 43, 43, 43, 64, 36,
+ 36, 36, 36, 43, 43, 43, 43, 43, 7, 7, 7, 7, 7, 36, 36, 36,
+ 36, 36, 36, 36, 36, 63, 43, 43, 43, 43, 40, 21, 2, 40, 68, 20,
+ 36, 36, 36, 43, 43, 68, 43, 43, 43, 43, 68, 43, 68, 43, 43, 43,
+ 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 36, 36, 63, 43, 43, 2,
+ 36, 63, 43, 43, 43, 43, 43, 43, 43, 73, 43, 43, 43, 43, 43, 43,
+ 43, 74, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 74, 64, 75,
+ 76, 43, 43, 43, 74, 75, 76, 75, 63, 43, 43, 43, 36, 36, 36, 36,
+ 36, 43, 2, 7, 7, 7, 7, 7, 77, 36, 36, 36, 36, 36, 36, 36,
+ 63, 75, 78, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 64, 75,
+ 76, 43, 43, 74, 75, 75, 76, 36, 36, 36, 36, 79, 75, 75, 36, 36,
+ 36, 43, 43, 7, 7, 7, 7, 7, 36, 20, 27, 27, 27, 53, 58, 43,
+ 43, 74, 78, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 43, 75,
+ 76, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 64, 36, 36, 36,
+ 36, 36, 36, 7, 7, 7, 7, 7, 43, 36, 63, 2, 2, 2, 2, 2,
+ 76, 43, 43, 43, 74, 75, 76, 43, 60, 20, 20, 20, 80, 43, 43, 43,
+ 43, 75, 78, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 64, 76,
+ 76, 43, 43, 74, 75, 75, 76, 43, 43, 43, 43, 74, 75, 75, 36, 36,
+ 71, 27, 27, 27, 27, 27, 27, 27, 43, 64, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 75, 74, 75, 75, 75, 75, 75, 76, 43,
+ 36, 36, 36, 79, 75, 75, 75, 75, 75, 75, 75, 7, 7, 7, 7, 7,
+ 27, 81, 61, 61, 53, 61, 61, 61, 74, 75, 64, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 43, 74, 75, 75, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 36, 36, 36, 36, 7, 7, 7, 82, 27, 27, 27, 81,
+ 63, 75, 65, 36, 36, 36, 36, 36, 75, 75, 75, 74, 75, 75, 43, 43,
+ 43, 43, 74, 75, 75, 75, 75, 36, 83, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 63, 64, 75, 76, 43, 43, 75, 75, 75, 76, 70,
+ 61, 61, 36, 79, 27, 27, 27, 84, 27, 27, 27, 27, 81, 36, 36, 36,
+ 75, 75, 78, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 43, 43, 74,
+ 75, 43, 43, 43, 75, 75, 75, 75, 7, 75, 2, 2, 2, 2, 2, 2,
+ 63, 36, 43, 43, 43, 43, 43, 85, 36, 36, 36, 68, 43, 43, 43, 57,
+ 7, 7, 7, 7, 7, 2, 2, 2, 63, 36, 43, 43, 43, 43, 64, 36,
+ 36, 36, 36, 40, 43, 43, 43, 43, 7, 7, 7, 7, 7, 7, 36, 36,
+ 70, 61, 2, 2, 2, 2, 2, 2, 2, 86, 86, 61, 43, 61, 61, 61,
+ 7, 7, 7, 7, 7, 27, 27, 27, 27, 27, 47, 47, 47, 4, 4, 75,
+ 63, 43, 43, 43, 43, 43, 43, 74, 43, 43, 57, 43, 36, 36, 63, 43,
+ 43, 43, 43, 43, 43, 43, 43, 61, 61, 61, 61, 69, 61, 61, 61, 61,
+ 2, 2, 86, 61, 21, 2, 2, 2, 36, 36, 36, 36, 36, 79, 76, 43,
+ 74, 43, 43, 43, 76, 74, 76, 64, 36, 36, 36, 75, 43, 36, 36, 43,
+ 64, 75, 78, 79, 75, 75, 75, 36, 63, 43, 64, 36, 36, 36, 36, 36,
+ 36, 74, 76, 74, 75, 75, 76, 79, 7, 7, 7, 7, 7, 75, 76, 61,
+ 16, 16, 16, 16, 16, 50, 44, 16, 36, 36, 36, 36, 36, 36, 63, 43,
+ 2, 2, 2, 2, 87, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 61, 61, 61, 61, 61, 61, 61, 61, 11, 11, 11, 11, 16, 16, 16, 16,
+ 88, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 70, 65,
+ 89, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 90, 91, 91,
+ 36, 36, 36, 36, 36, 58, 2, 92, 93, 36, 36, 36, 36, 36, 36, 36,
+ 36, 43, 43, 43, 43, 43, 43, 43, 36, 43, 57, 2, 2, 2, 2, 2,
+ 36, 36, 43, 76, 43, 43, 43, 75, 75, 75, 75, 74, 76, 43, 43, 43,
+ 43, 43, 2, 77, 2, 60, 63, 43, 7, 7, 7, 7, 7, 7, 7, 7,
+ 2, 2, 2, 94, 2, 56, 43, 59, 36, 95, 36, 36, 36, 36, 36, 36,
+ 36, 36, 63, 64, 36, 36, 36, 36, 36, 36, 36, 36, 63, 36, 36, 36,
+ 43, 74, 75, 76, 74, 75, 75, 75, 75, 74, 75, 75, 76, 43, 43, 43,
+ 61, 61, 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 27, 27, 61,
+ 36, 36, 36, 63, 74, 76, 43, 2, 36, 36, 79, 74, 43, 43, 43, 43,
+ 74, 74, 76, 43, 43, 43, 74, 75, 75, 76, 43, 43, 43, 43, 43, 43,
+ 2, 2, 2, 77, 2, 2, 2, 2, 43, 43, 43, 43, 43, 43, 43, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 43, 43, 78, 36, 36, 36, 36, 36,
+ 36, 36, 74, 43, 43, 74, 74, 75, 75, 74, 78, 36, 36, 36, 36, 36,
+ 86, 61, 61, 61, 61, 47, 43, 43, 43, 43, 61, 61, 61, 61, 61, 61,
+ 43, 78, 36, 36, 36, 36, 36, 36, 79, 43, 43, 75, 43, 76, 43, 36,
+ 36, 36, 36, 74, 43, 75, 76, 76, 43, 75, 75, 75, 75, 75, 2, 2,
+ 36, 36, 75, 75, 75, 75, 43, 43, 43, 43, 75, 43, 43, 57, 2, 2,
+ 7, 7, 7, 7, 7, 7, 83, 36, 36, 36, 36, 36, 40, 40, 40, 2,
+ 43, 57, 43, 43, 43, 43, 43, 43, 74, 43, 43, 43, 64, 36, 63, 36,
+ 36, 36, 64, 79, 43, 36, 36, 36, 16, 16, 16, 16, 16, 16, 40, 40,
+ 40, 40, 40, 40, 40, 44, 16, 16, 16, 16, 16, 16, 44, 16, 16, 16,
+ 16, 16, 16, 16, 16, 96, 40, 40, 32, 32, 32, 16, 16, 16, 16, 32,
+ 16, 16, 16, 16, 11, 11, 11, 11, 16, 16, 16, 16, 34, 11, 11, 11,
+ 16, 16, 16, 16, 97, 97, 97, 97, 16, 16, 16, 16, 11, 11, 98, 99,
+ 41, 16, 16, 16, 11, 11, 98, 41, 16, 16, 16, 16, 11, 11,100, 41,
+ 101,101,101,101,101,102, 59, 59, 51, 51, 51, 2,103,104,103,104,
+ 2, 2, 2, 2,105, 59, 59,106, 2, 2, 2, 2,107,108, 2,109,
+ 110, 2,111,112, 2, 2, 2, 2, 2, 9,110, 2, 2, 2, 2,113,
+ 59, 59, 59, 59, 59, 59, 59, 59,114, 40, 27, 27, 27, 8,111,115,
+ 27, 27, 27, 27, 27, 8,111, 91, 20, 20, 20, 20, 20, 20, 20, 20,
+ 43, 43, 43, 43, 43, 43,116, 48,117, 48,117, 43, 43, 43, 43, 43,
+ 61,118, 61,119, 61, 34, 11, 16, 11, 32,119, 61, 46, 11, 11, 61,
+ 61, 61,118,118,118, 11, 11,120, 11, 11, 35, 36, 39, 61, 16, 11,
+ 8, 8, 46, 16, 16, 26, 61,121, 92, 92, 92, 92, 92, 92, 92, 92,
+ 92,122,123, 92,124, 61, 61, 61, 8, 8,125, 61, 61, 8, 61, 61,
+ 125, 26, 61,125, 61, 61, 61,125, 61, 61, 61, 61, 61, 61, 61, 8,
+ 61,125,125, 61, 61, 61, 61, 61, 61, 61, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 61, 61, 61, 61, 4, 4, 61, 61,
+ 8, 61, 61, 61,126,127, 61, 61, 61, 61, 61, 61, 61, 61,125, 61,
+ 61, 61, 61, 61, 61, 26, 8, 8, 8, 8, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 8, 8, 8, 61, 61, 61, 61, 61, 61, 61,
+ 27, 27, 27, 27, 27, 27, 61, 61, 61, 61, 61, 61, 61, 27, 27, 27,
+ 61, 61, 61, 26, 61, 61, 61, 61, 26, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 8, 8, 8, 8, 61, 61, 61, 61, 61, 61, 61, 26,
+ 61, 61, 61, 61, 4, 4, 4, 4, 4, 4, 4, 27, 27, 27, 27, 27,
+ 27, 27, 61, 61, 61, 61, 61, 61, 8, 8,111,128, 8, 8, 8, 8,
+ 8, 8, 8, 4, 4, 4, 4, 4, 8,111,129,129,129,129,129,129,
+ 129,129,129,129,128, 8, 8, 8, 8, 8, 8, 8, 4, 4, 8, 8,
+ 8, 8, 8, 8, 8, 8, 4, 8, 8, 8,125, 26, 8, 8,125, 61,
+ 32, 11, 32, 34, 34, 34, 34, 11, 32, 32, 34, 16, 16, 16, 40, 11,
+ 32, 32,121, 61, 61,119, 34,130, 43, 32, 16, 16, 50, 2, 87, 2,
+ 36, 36, 36, 36, 36, 36, 36, 95, 2, 2, 2, 2, 2, 2, 2, 56,
+ 2,103,103, 2,107,108,103, 2, 2, 2, 2, 6, 2, 94,103, 2,
+ 103, 4, 4, 4, 4, 2, 2, 77, 2, 2, 2, 2, 2, 51, 2, 2,
+ 94,131, 2, 2, 2, 2, 2, 2, 1, 2,132,133, 4, 4, 4, 4,
+ 4, 61, 4, 4, 4, 4,134, 91,135, 92, 92, 92, 92, 43, 43, 75,
+ 136, 40, 40, 61, 92,137, 58, 61, 71, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 63,138,139, 62, 36, 36, 36, 36, 36, 58, 40, 62,
+ 61, 27, 27, 61, 61, 61, 61, 61, 27, 27, 27, 27, 27, 61, 61, 61,
+ 61, 61, 61, 61, 27, 27, 27, 27,140, 27, 27, 27, 27, 27, 27, 27,
+ 36, 36, 95, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,141, 2,
+ 32, 32, 32, 32, 32, 32, 32, 63, 48,142, 43, 43, 43, 43, 43, 77,
+ 32, 32, 32, 32, 32, 32, 40, 43, 36, 36, 36, 92, 92, 92, 92, 92,
+ 43, 2, 2, 2, 2, 2, 2, 2, 41, 41, 41,139, 40, 40, 40, 40,
+ 41, 32, 32, 32, 32, 32, 32, 32, 16, 32, 32, 32, 32, 32, 32, 32,
+ 44, 16, 16, 16, 34, 34, 34, 32, 32, 32, 32, 32, 42,143, 34, 35,
+ 32, 32, 16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 11, 11, 32,
+ 11, 11, 32, 32, 32, 32, 32, 32, 16, 32, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11,144, 40, 35, 36, 36, 36, 64, 36, 64, 36, 63, 36, 36,
+ 36, 79, 76, 74, 61, 61, 61, 61, 27, 27, 27, 61,145, 61, 61, 61,
+ 36, 36, 2, 2, 2, 2, 2, 2, 75, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 75, 75, 75, 75, 75, 75, 75, 75, 43, 43, 43, 43, 43, 2,
+ 43, 36, 36, 36, 2, 65, 65, 63, 36, 36, 36, 43, 43, 43, 43, 2,
+ 36, 36, 36, 63, 43, 43, 43, 43, 43, 75, 75, 75, 75, 75, 75,146,
+ 36, 63, 75, 43, 43, 75, 43, 75,146, 2, 2, 2, 2, 2, 2, 77,
+ 7, 7, 7, 7, 7, 7, 7, 2, 36, 36, 63, 62, 36, 36, 36, 36,
+ 36, 36, 36, 36, 63, 43, 43, 74, 76, 74, 76, 43, 43, 43, 43, 43,
+ 36, 63, 36, 36, 36, 36, 74, 75, 7, 7, 7, 7, 7, 7, 2, 2,
+ 62, 36, 36, 70, 61, 79, 74, 36, 64, 43, 64, 63, 64, 36, 36, 43,
+ 36, 36, 36, 36, 36, 36, 95, 2, 36, 36, 36, 36, 36, 79, 43, 75,
+ 2, 95,147, 43, 43, 43, 43, 43, 16, 16, 16, 16, 16, 99, 40, 40,
+ 36, 79, 76, 75, 74,146, 76, 43,148,148,148,148,148,148,148,148,
+ 149,149,149,149,149,149,149,149, 16, 16, 16, 16, 16, 16, 35, 64,
+ 36, 36, 36, 36,150, 36, 36, 36, 36, 41, 41, 41, 41, 41, 41, 41,
+ 41,151, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,129,
+ 152,152,152,152,152,152,152,152, 36, 36, 36, 36, 36, 36,145, 61,
+ 2, 2, 2,153,112, 2, 2, 2, 6,154,155,129,129,129,129,129,
+ 129,129,112,153,112, 2,109,156, 2, 2, 2, 2,134,129,129,112,
+ 2,157, 8, 8, 60, 2, 2, 2, 36, 36, 36, 36, 36, 36, 36,158,
+ 2, 2, 3, 2, 4, 5, 6, 2, 16, 16, 16, 16, 16, 17, 18,111,
+ 112, 4, 2, 36, 36, 36, 36, 36, 62, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 40, 20,159, 53, 20, 26, 8,125, 61,
+ 61, 61, 61, 61,160, 59, 61, 61, 2, 2, 2, 87, 27, 27, 27, 27,
+ 27, 27, 27, 81, 61, 61, 61, 61, 92, 92,124, 27, 81, 61, 61, 61,
+ 61, 61, 61, 61, 61, 27, 61, 61, 61, 61, 61, 61, 61, 61, 47, 43,
+ 161,161,161,161,161,161,161,161,162, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 84, 36,133, 36, 36, 36, 36, 92, 92, 92,
+ 36, 36, 36, 36, 36, 36, 36, 58,163, 92, 92, 92, 92, 92, 92, 92,
+ 36, 36, 36, 58, 27, 27, 27, 27, 36, 36, 36, 70,140, 27, 27, 27,
+ 36, 36, 36,164, 27, 27, 27, 27, 36, 36, 36, 36, 36,164, 27, 27,
+ 36, 36, 36, 27, 27, 27, 27, 30, 36, 36, 36, 36, 36, 36, 27, 36,
+ 63, 43, 43, 43, 43, 43, 43, 43, 36, 36, 36, 36, 43, 43, 43, 43,
+ 36, 36, 36, 36, 36, 36,164, 30, 36, 36, 36, 36, 36, 36,164, 27,
+ 36, 36, 36, 36, 71, 36, 36, 36, 36, 36, 63, 43, 43,162, 27, 27,
+ 36, 36, 36, 36, 58, 2, 2, 2, 36, 36, 36, 36, 27, 27, 27, 27,
+ 16, 16, 16, 16, 16, 27, 27, 27, 36, 36, 43, 43, 43, 43, 43, 43,
+ 27, 27, 27, 84, 36, 36, 36, 36,162, 27, 30, 2, 2, 2, 2, 2,
+ 76, 78, 36, 36, 36, 36, 36, 36, 43, 43, 43, 57, 2, 2, 2, 2,
+ 2, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7,165, 75, 76, 43, 74, 76, 57, 72, 2,
+ 2, 2, 2, 2, 2, 2, 72, 59, 36, 36, 36, 63, 43, 43, 76, 43,
+ 43, 43, 43, 7, 7, 7, 7, 7, 2, 2, 79, 75, 75, 75, 75, 75,
+ 36, 63, 2, 36, 36, 36, 36, 36, 36, 79, 75, 43, 43, 43, 43, 74,
+ 78, 36, 58, 2, 56, 43, 57, 2, 7, 7, 7, 7, 7, 58, 58, 2,
+ 87, 27, 27, 27, 27, 27, 27, 27, 36, 36, 36, 36, 36, 36, 75, 76,
+ 43, 75, 74, 43, 2, 2, 2, 43, 36, 36, 36, 36, 36, 36, 36, 63,
+ 74, 75, 75, 75, 75, 75, 75, 75, 36, 36, 36, 79, 75, 75, 78, 36,
+ 36, 75, 75, 43, 43, 43, 43, 43, 36, 36, 79, 75, 43, 43, 43, 43,
+ 75, 43, 74, 64, 36, 58, 2, 2, 7, 7, 7, 7, 7, 82, 2, 64,
+ 75, 76, 43, 43, 74, 74, 75, 76, 74, 43, 36, 65, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 79, 75, 43, 43, 43, 75, 75, 43, 76,
+ 57, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 43, 43,
+ 75, 76, 43, 43, 43, 74, 76, 76, 57, 2, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 63, 76, 75, 43, 43, 43, 76, 36, 36, 36, 36,
+ 75, 43, 43, 76, 43, 43, 43, 43, 7, 7, 7, 7, 7, 27, 2, 86,
+ 43, 43, 43, 43, 76, 57, 2, 2, 27, 27, 27, 27, 27, 27, 27, 84,
+ 79, 75, 43, 43, 43, 43, 75, 75, 64, 65, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 63, 43, 43, 43, 43, 64, 36, 36,
+ 36, 63, 43, 43, 74, 63, 43, 57, 2, 2, 2, 56, 43, 43, 43, 43,
+ 63, 43, 43, 74, 76, 43, 36, 36, 36, 36, 36, 36, 36, 43, 43, 43,
+ 43, 43, 43, 74, 43, 2, 65, 2, 43, 43, 43, 43, 43, 43, 43, 76,
+ 58, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 36, 36, 36, 36, 36,
+ 43, 43, 43, 43, 74, 43, 43, 43, 74, 43, 76, 43, 43, 43, 43, 43,
+ 43, 43, 43, 63, 43, 43, 43, 43, 36, 36, 36, 36, 36, 75, 75, 75,
+ 43, 74, 76, 76, 36, 36, 36, 36, 36, 63, 74,146, 2, 2, 2, 2,
+ 27, 27, 81, 61, 61, 61, 53, 20,145, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 21, 43, 43, 57, 2, 2, 2, 2, 2,
+ 43, 43, 43, 57, 2, 2, 61, 61, 40, 40, 86, 61, 61, 61, 61, 61,
+ 7, 7, 7, 7, 7,166, 27, 27, 27, 84, 36, 36, 36, 36, 36, 36,
+ 27, 27, 27, 30, 2, 2, 2, 2, 79, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 76, 43, 67, 40, 40, 40, 40, 40, 40,
+ 40, 77, 40, 40, 40, 40, 40, 40, 36, 36, 36, 36, 36, 36, 47, 57,
+ 61, 61,167, 76, 43, 61,167, 75, 75,168, 59, 59, 59, 73, 43, 43,
+ 43, 69, 47, 43, 43, 43, 61, 61, 61, 61, 61, 61, 61, 43, 43, 61,
+ 61, 43, 69, 61, 61, 61, 61, 61, 11, 11, 11, 11, 11, 16, 16, 16,
+ 16, 16, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 16,
+ 11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 11, 11,
+ 11, 11, 11, 16, 16, 16, 16, 16, 31, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 33, 16, 16, 16, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 31, 16, 16, 16, 16, 33, 16, 16, 16, 11, 11,
+ 11, 11, 31, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 33,
+ 16, 16, 16, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 31,
+ 16, 16, 16, 16, 33, 16, 16, 16, 11, 11, 11, 11, 31, 16, 16, 16,
+ 16, 33, 16, 16, 16, 32, 16, 7, 43, 43, 43, 69, 61, 47, 43, 43,
+ 43, 43, 43, 43, 43, 43, 69, 61, 61, 61, 47, 61, 61, 61, 61, 61,
+ 61, 61, 69, 21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56, 43, 43,
+ 43, 43, 43, 67, 40, 40, 40, 40, 7, 7, 7, 7, 7, 7, 7, 70,
+ 36, 36, 36, 36, 36, 36, 43, 43, 7, 7, 7, 7, 7, 7, 7,169,
+ 16, 16, 43, 43, 43, 67, 40, 40, 27, 27, 27, 27, 27, 27,140, 27,
+ 170, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,140,
+ 61, 61, 61, 61, 61, 25, 41, 41, 0, 0, 29, 21, 21, 21, 23, 21,
+ 22, 18, 21, 25, 21, 17, 13, 13, 25, 25, 25, 21, 21, 9, 9, 9,
+ 9, 22, 21, 18, 24, 16, 24, 5, 5, 5, 5, 22, 25, 18, 25, 0,
+ 23, 23, 26, 21, 24, 26, 7, 20, 25, 1, 26, 24, 26, 25, 15, 15,
+ 24, 15, 7, 19, 15, 21, 9, 25, 9, 5, 5, 25, 5, 9, 5, 7,
+ 7, 7, 9, 8, 8, 5, 7, 5, 6, 6, 24, 24, 6, 24, 12, 12,
+ 6, 5, 9, 21, 25, 9, 26, 12, 11, 11, 9, 6, 5, 21, 17, 17,
+ 17, 26, 26, 23, 23, 12, 17, 12, 21, 12, 12, 21, 7, 21, 1, 1,
+ 21, 23, 26, 26, 6, 7, 7, 12, 12, 7, 21, 7, 12, 1, 12, 6,
+ 6, 12, 12, 26, 7, 26, 26, 7, 21, 1, 1, 12, 12, 10, 10, 10,
+ 10, 12, 21, 6, 10, 7, 7, 10, 23, 7, 15, 26, 13, 21, 13, 7,
+ 15, 7, 12, 23, 21, 26, 21, 15, 17, 7, 29, 7, 7, 22, 18, 18,
+ 14, 14, 14, 7, 17, 21, 7, 6, 5, 6, 8, 8, 8, 24, 5, 24,
+ 9, 24, 29, 29, 29, 1, 20, 19, 22, 20, 27, 28, 1, 29, 21, 20,
+ 19, 21, 21, 16, 16, 21, 25, 22, 18, 21, 21, 29, 15, 6, 18, 6,
+ 12, 11, 11, 12, 9, 26, 26, 9, 26, 5, 5, 26, 14, 9, 5, 14,
+ 14, 15, 25, 26, 26, 22, 18, 26, 18, 25, 18, 22, 5, 12, 22, 21,
+ 26, 6, 7, 14, 17, 22, 26, 14, 17, 6, 14, 6, 12, 24, 24, 6,
+ 26, 15, 6, 21, 11, 21, 24, 9, 9, 7, 23, 26, 10, 21, 6, 10,
+ 4, 4, 3, 3, 7, 25, 24, 7, 22, 22, 21, 22, 17, 16, 16, 22,
+ 16, 16, 25, 17, 7, 1, 25, 24, 26, 1, 2, 2, 12, 15, 21, 14,
+ 7, 15, 13, 12, 13, 15, 26, 10, 10, 1, 13, 23, 23, 15, 0, 1,
+ 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 12, 13, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14, 15, 16, 9,
+ 17, 18, 19, 20, 21, 22, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 23, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 24, 9, 9,
+ 9, 9, 25, 9, 9, 9, 26, 9, 27, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 3, 0, 0, 0,
+ 4, 5, 6, 7, 0, 8, 9, 10, 0, 11, 12, 13, 0, 14, 15, 16,
+ 15, 17, 15, 18, 15, 18, 15, 18, 0, 18, 0, 19, 15, 18, 20, 18,
+ 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 31, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 33, 0, 0, 34, 0, 0, 35, 0, 36, 0,
+ 0, 0, 37, 38, 39, 0, 40, 41, 42, 43, 44, 0, 0, 45, 0, 0,
+ 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 49,
+ 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 52, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 53, 54, 55, 0, 0, 0, 0, 56, 0, 0, 57, 58, 59,
+ 60, 61, 0, 0, 62, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 67, 0, 0, 0, 68, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 70, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0,
+ 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 74, 75, 0, 76, 60,
+ 0, 77, 78, 0, 0, 79, 80, 81, 0, 0, 0, 82, 0, 83, 0, 0,
+ 49, 84, 49, 0, 85, 0, 86, 0, 0, 0, 75, 0, 0, 0, 0, 0,
+ 0, 87, 88, 89, 90, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 91,
+ 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 93, 94, 0, 0, 0, 0, 0, 95, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,
+ 97, 0, 0, 98, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 94, 0,
+ 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,101, 0,102,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
+ 3, 4, 5, 6, 7, 0, 8, 0, 0, 0, 0, 9, 10, 11, 12, 0,
+ 0, 0, 0, 13, 0, 0, 14, 15, 0, 16, 0, 17, 18, 0, 0, 19,
+ 0, 20, 21, 0, 0, 0, 0, 0, 22, 23, 0, 24, 25, 0, 0, 26,
+ 0, 0, 0, 27, 28, 29, 0, 0, 0, 30, 31, 32, 0, 0, 31, 0,
+ 0, 33, 31, 0, 0, 0, 31, 34, 0, 0, 0, 0, 0, 35, 36, 0,
+ 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 39, 40, 0,
+ 0, 0, 0, 41, 0, 42, 0, 0, 0, 43, 44, 0, 0, 0, 45, 0,
+ 0, 0, 0, 0, 0, 46, 47, 0, 0, 0, 0, 48, 0, 0, 0, 49,
+ 0, 49, 0, 50, 0, 0, 0, 0, 51, 0, 0, 0, 0, 52, 0, 53,
+ 0, 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, 57, 49, 0,
+ 58, 59, 0, 0, 60, 0, 0, 0, 61, 62, 0, 0, 0, 63, 0, 64,
+ 65, 66, 67, 68, 1, 69, 0, 70, 71, 72, 0, 0, 73, 74, 0, 0,
+ 0, 75, 0, 0, 1, 1, 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
+ 73, 78, 0, 79, 0, 0, 0, 0, 0, 74, 80, 0, 0, 0, 49, 0,
+ 1, 74, 0, 0, 81, 0, 0, 82, 0, 0, 0, 0, 0, 83, 54, 0,
+ 0, 0, 0, 0, 0, 84, 85, 0, 0, 80, 0, 0, 31, 0, 0, 86,
+ 0, 0, 0, 0, 87, 0, 0, 0, 0, 47, 0, 0, 88, 0, 0, 0,
+ 0, 89, 90, 0, 0, 91, 0, 0, 92, 0, 0, 0, 93, 0, 94, 88,
+ 0, 0, 80, 0, 0, 75, 0, 0, 0, 95, 96, 0, 0, 97, 98, 0,
+ 0, 0, 0, 0, 0, 99, 0, 0,100, 0, 0, 0, 0,101, 31, 0,
+ 102,103,104, 33, 0, 0,105, 0, 0, 0,106, 0, 0, 0, 0, 0,
+ 0,107, 0, 0,108, 0, 0, 0, 54, 0, 0, 0, 0, 49,109, 0,
+ 0, 0, 0,110, 0, 0,111, 0, 0, 0, 0,109, 0, 0, 0, 0,
+ 0,112, 0, 0, 0,113, 0,114, 0, 0, 0, 0,115,116,117, 0,
+ 118, 0,119, 0, 0, 0,120,121,122, 0, 0, 0,123, 0, 0,124,
+ 0, 0,125, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2,
+ 3, 4, 5, 6, 7, 4, 4, 8, 9, 10, 1, 11, 12, 13, 14, 15,
+ 16, 17, 18, 1, 1, 1, 19, 1, 0, 0, 20, 21, 22, 1, 23, 4,
+ 21, 24, 25, 26, 27, 28, 29, 30, 0, 0, 1, 1, 31, 0, 0, 0,
+ 32, 33, 34, 35, 1, 36, 37, 0, 0, 0, 0, 38, 1, 39, 14, 39,
+ 40, 41, 42, 0, 0, 0, 43, 36, 44, 45, 21, 45, 46, 0, 0, 0,
+ 19, 1, 21, 0, 0, 47, 0, 38, 48, 1, 1, 49, 49, 50, 0, 0,
+ 51, 0, 52, 1, 1, 1, 53, 21, 43, 54, 55, 21, 35, 1, 0, 0,
+ 0, 56, 0, 0, 0, 57, 58, 59, 0, 0, 0, 0, 0, 60, 0, 61,
+ 0, 0, 0, 0, 62, 63, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0,
+ 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 70,
+ 71, 0, 72, 73, 74, 75, 76, 77, 0, 0, 0, 78, 0, 0, 0, 79,
+ 80, 0, 0, 0, 0, 47, 0, 0, 0, 49, 0, 63, 0, 0, 64, 0,
+ 0, 81, 0, 0, 82, 0, 0, 0, 83, 0, 0, 19, 84, 0, 63, 0,
+ 0, 0, 0, 49, 1, 85, 1, 54, 15, 41, 0, 56, 0, 0, 0, 0,
+ 19, 10, 1, 0, 0, 0, 0, 0, 86, 0, 0, 87, 0, 0, 86, 0,
+ 0, 0, 0, 79, 0, 0, 88, 9, 12, 4, 89, 8, 90, 47, 0, 59,
+ 50, 0, 21, 1, 21, 91, 92, 1, 1, 1, 1, 93, 94, 95, 96, 1,
+ 97, 59, 81, 98, 99, 4, 59, 0, 0, 0, 0, 0, 0, 19, 50, 0,
+ 0, 0, 0, 0, 0, 62, 0, 0,100,101, 0, 0,102, 0, 0, 1,
+ 1, 50, 0, 0, 0, 38, 0, 64, 0, 0, 0, 0, 52, 69, 62, 0,
+ 0, 0, 79, 0, 0, 0,103,104, 59, 38, 81, 0, 0, 0, 0, 0,
+ 0,105, 1, 14, 4, 12, 84, 0, 0, 0, 0, 38, 88, 0, 0, 0,
+ 0,106, 0, 0,107, 62, 0,108, 0, 0, 0, 1, 0, 0, 0,109,
+ 14, 54, 0, 0,110, 0, 88, 0, 0, 0, 62, 63, 0, 0, 63, 0,
+ 87, 0, 0,110, 0, 0, 0, 0,111, 0, 0, 0, 79, 56, 0, 38,
+ 1, 59, 1, 59, 0, 0, 64, 87, 0, 0,112, 0, 0, 0, 56, 0,
+ 0, 0, 0,112, 0, 0, 0, 0, 62, 0, 0, 62, 0, 0, 0, 0,
+ 57, 0, 87,113, 0, 0, 8, 90, 0, 0, 1, 88, 0, 0, 0, 0,
+ 0,114, 0,115,116,117,118, 0, 52, 4,119, 49, 23, 0, 0, 0,
+ 38, 50, 38, 59, 0, 0, 1, 88, 1, 1, 1, 1, 39, 1, 48,103,
+ 88, 0, 0, 0, 0, 1, 4,119, 0, 0, 0, 1,120, 0, 0, 0,
+ 0, 0,230,230,230,230,230,232,220,220,220,220,232,216,220,220,
+ 220,220,220,202,202,220,220,220,220,202,202,220,220,220, 1, 1,
+ 1, 1, 1,220,220,220,220,230,230,230,230,240,230,220,220,220,
+ 230,230,230,220,220, 0,230,230,230,220,220,220,220,230,232,220,
+ 220,230,233,234,234,233,234,234,233,230, 0, 0, 0,230, 0,220,
+ 230,230,230,230,220,230,230,230,222,220,230,230,220,220,230,222,
+ 228,230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22,
+ 0, 23, 0, 24, 25, 0,230,220, 0, 18, 30, 31, 32, 0, 0, 0,
+ 0, 27, 28, 29, 30, 31, 32, 33, 34,230,230,220,220,230,220,230,
+ 230,220, 35, 0, 0, 0, 0, 0,230,230,230, 0, 0,230,230, 0,
+ 220,230,230,220, 0, 0, 0, 36, 0, 0,230,220,230,230,220,220,
+ 230,220,220,230,220,230,220,230,230, 0, 0,220, 0, 0,230,230,
+ 0,230, 0,230,230,230,230,230, 0, 0, 0,220,220,220, 0, 0,
+ 0,220,230,230, 0,220,230,220,220,220, 27, 28, 29,230, 7, 0,
+ 0, 0, 0, 9, 0, 0, 0,230,220,230,230, 0, 0, 0, 0, 0,
+ 230, 0, 0, 84, 91, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0,
+ 9, 0,103,103, 9, 0,107,107,107,107,118,118, 9, 0,122,122,
+ 122,122,220,220, 0, 0, 0,220, 0,220, 0,216, 0, 0, 0,129,
+ 130, 0,132, 0, 0, 0, 0, 0,130,130,130,130, 0, 0,130, 0,
+ 230,230, 9, 0,230,230, 0, 0,220, 0, 0, 0, 0, 7, 0, 9,
+ 9, 0, 0,230, 0, 0, 0,228, 0, 0, 0,222,230,220,220, 0,
+ 0, 0,230, 0, 0,220, 0, 0, 9, 9, 0, 0, 7, 0,230,230,
+ 230, 0,230, 0, 1, 1, 1, 0, 0, 0,230,234,214,220,202,230,
+ 230,230,230,230,232,228,228,220, 0,230,233,220,230,220,230,230,
+ 1, 1, 1, 1, 1,230, 0, 1, 1,230,220,230, 1, 1, 0, 0,
+ 218,228,232,222,224,224, 0, 8, 8, 0,230, 0,230,230,220, 0,
+ 0,230, 0, 0, 26, 0, 0,220, 0,230,230, 1,220, 0, 0,230,
+ 220, 0, 0, 0,220,220, 0, 9, 7, 0, 0, 7, 9, 0, 0, 0,
+ 9, 7, 9, 9, 0, 0, 0, 0, 1, 0, 0,216,216, 1, 1, 1,
+ 0, 0, 0,226,216,216,216,216,216, 0,220,220,220, 0,230,230,
+ 7, 0, 16, 17, 17, 33, 17, 49, 17, 17, 84, 97,135,145, 26, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17,177, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 5, 3, 3, 3,
+ 3, 3, 6, 7, 8, 3, 3, 3, 3, 3, 9, 10, 11, 12, 13, 3,
+ 3, 3, 3, 3, 3, 3, 3, 14, 3, 15, 3, 3, 3, 3, 3, 3,
+ 16, 17, 18, 19, 20, 21, 3, 3, 3, 22, 23, 3, 3, 3, 3, 3,
+ 3, 3, 24, 3, 3, 3, 3, 3, 3, 3, 3, 25, 3, 3, 26, 27,
+ 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 0,
+ 0, 3, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0,
+ 0, 9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, 0,
+ 0, 14, 15, 16, 6, 0, 17, 18, 19, 19, 19, 20, 21, 22, 23, 24,
+ 19, 25, 0, 26, 27, 19, 19, 28, 29, 30, 0, 31, 0, 0, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 19, 28, 0, 32, 33, 9, 34, 35, 19,
+ 0, 0, 36, 37, 38, 39, 40, 19, 0, 41, 42, 43, 44, 31, 0, 1,
+ 45, 42, 0, 0, 0, 0, 0, 32, 14, 14, 0, 0, 0, 0, 14, 0,
+ 0, 46, 47, 47, 47, 47, 48, 49, 47, 47, 47, 47, 50, 51, 52, 53,
+ 43, 21, 0, 0, 0, 0, 0, 0, 0, 54, 6, 55, 0, 14, 19, 1,
+ 0, 0, 0, 19, 56, 31, 0, 0, 0, 0, 0, 0, 0, 57, 14, 0,
+ 0, 0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 58, 59, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 4,
+ 5, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 1, 1, 0, 0, 8,
+ 9, 0, 8, 9, 0, 0, 0, 0, 8, 9, 10, 11, 12, 0, 0, 0,
+ 13, 0, 0, 0, 0, 14, 15, 16, 17, 0, 0, 0, 1, 0, 0, 18,
+ 19, 0, 0, 0, 20, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1,
+ 1, 1, 1, 1, 0, 8, 21, 9, 0, 0, 22, 0, 0, 0, 0, 1,
+ 0, 23, 24, 25, 0, 0, 26, 0, 0, 0, 8, 21, 27, 0, 1, 0,
+ 0, 1, 1, 1, 1, 0, 1, 28, 29, 30, 0, 31, 32, 20, 1, 1,
+ 0, 0, 0, 8, 21, 9, 1, 4, 5, 0, 0, 0, 33, 9, 0, 1,
+ 1, 1, 0, 8, 21, 21, 21, 21, 34, 1, 35, 21, 21, 21, 9, 36,
+ 0, 0, 37, 38, 1, 0, 39, 0, 0, 0, 1, 0, 1, 0, 0, 0,
+ 0, 8, 21, 9, 1, 0, 0, 0, 40, 0, 8, 21, 21, 21, 21, 21,
+ 21, 21, 21, 9, 0, 1, 1, 1, 1, 8, 21, 21, 21, 9, 0, 0,
+ 0, 41, 0, 42, 43, 0, 0, 0, 1, 44, 0, 0, 0, 45, 8, 9,
+ 1, 0, 1, 0, 1, 1, 8, 21, 21, 9, 0, 4, 5, 8, 9, 1,
+ 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 9, 10, 11, 11, 11, 11, 11, 12, 12, 12,
+ 12, 13, 14, 15, 16, 17, 18, 12, 19, 12, 20, 12, 12, 12, 12, 21,
+ 22, 22, 22, 23, 12, 12, 12, 12, 24, 25, 12, 12, 26, 27, 28, 29,
+ 30, 31, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 32,
+ 12, 33, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 34, 0, 0, 1, 2, 2, 2, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 32, 33, 33, 33, 34, 35, 35, 35, 35,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 2, 2, 51, 51, 52, 53, 54, 55, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 57, 57, 56, 56, 56, 56, 56, 56, 58, 59, 60, 61,
+ 56, 62, 62, 63, 64, 65, 66, 67, 68, 69, 70, 56, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 71,
+ 62, 62, 62, 62, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 74, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
+ 87, 87, 87, 87, 87, 87, 62, 62, 62, 62, 88, 89, 89, 89, 90, 89,
+ 91, 92, 93, 94, 95, 95, 96, 97, 87, 98, 99,100,101,102,103, 87,
+ 104,104,104, 87,105,106,107,108,109,110,111,112,113,114,115, 87,
+ 89, 87,116,117,118,119,120,121,122,123,124, 87,125,126, 87,127,
+ 128,129,130, 87,131,132, 87,133,134,135, 87, 87,136,137,138,139,
+ 87,140, 87, 21,141,141,141,141,141,141,141,141,141,141,141, 87,
+ 87, 87, 87, 87,142,142,142,142,142,142,142,142,142, 87, 87, 87,
+ 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,143,143,143,143,
+ 143, 87, 87, 87,144,144,144,144,145,146,147,147, 87, 87, 87, 87,
+ 148,148,149,150,151,151,151,151,151,151,151,151,151,151,151,151,
+ 151,151,151,151,151,151,151,151,151,151, 87, 87, 87, 87, 87, 87,
+ 87, 87, 87, 87,152,153,154,155,155,155, 87, 87, 87, 87, 87, 87,
+ 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,156,157, 87, 87,
+ 87, 87, 87, 87, 56, 56,158,159, 51, 56, 56, 87, 56, 56, 56, 56,
+ 56, 56, 56, 56,160,160,160,160,160,160, 87, 87, 87, 87, 87, 87,
+ 87, 87, 87, 87,161, 87,162, 87, 87,163, 87, 87, 87, 87, 87, 87,
+ 87, 87, 87, 87,164,164,165, 87, 87, 87, 87, 87, 56, 56, 56, 87,
+ 89, 89, 87, 87, 56, 56, 56, 56,166, 87, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 87, 87, 87, 87, 87, 87,
+ 87, 87, 87, 87, 62, 62, 62, 62, 62, 62, 62, 62, 87, 87, 87, 87,
+ 87, 87, 87, 87, 62, 62, 62, 62, 62, 87, 87, 87, 87, 87, 87, 87,
+ 87, 87, 87, 87, 56, 87,167,167, 0, 1, 2, 2, 0, 1, 2, 2,
+ 2, 3, 4, 5, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 3, 3,
+ 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6,
+ 0, 0, 7, 0, 8, 8, 8, 8, 8, 8, 8, 9, 10, 11, 11, 11,
+ 11, 11, 12, 11, 13, 13, 13, 13, 13, 13, 13, 13, 14, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 15, 16, 16, 16, 16, 17, 18, 19, 19,
+ 19, 19, 19, 19, 20, 21, 22, 22, 23, 24, 22, 25, 22, 22, 22, 22,
+ 22, 26, 22, 22, 27, 27, 27, 27, 27, 22, 22, 22, 28, 28, 28, 28,
+ 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 27, 27, 22, 22, 22, 22,
+ 22, 22, 32, 22, 33, 33, 33, 33, 33, 34, 35, 33, 36, 36, 36, 36,
+ 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38,
+ 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40,
+ 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42,
+ 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44,
+ 44, 44, 44, 44, 45, 45, 45, 46, 45, 45, 45, 45, 47, 47, 47, 47,
+ 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 49, 48, 48, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51,
+ 51, 51, 51, 52, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56,
+ 56, 56, 56, 56, 57, 57, 58, 58, 58, 58, 59, 58, 60, 60, 61, 62,
+ 63, 63, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 66, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 56, 56, 56, 56, 56, 68, 68, 68, 68,
+ 68, 69, 69, 69, 70, 70, 70, 70, 70, 70, 65, 65, 71, 71, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 8, 8, 8, 8, 8, 73, 73, 73, 73,
+ 73, 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, 75, 76, 76, 76, 76,
+ 76, 77, 77, 77, 13, 51, 51, 51, 74, 78, 79, 80, 4, 4, 81, 4,
+ 4, 82, 83, 84, 4, 4, 4, 85, 8, 8, 8, 8, 11, 11, 11, 11,
+ 11, 11, 11, 11, 86, 0, 0, 0, 0, 0, 0, 87, 0, 4, 0, 0,
+ 0, 8, 8, 8, 0, 0, 88, 89, 90, 0, 4, 4, 6, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 91, 91,
+ 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 4, 4, 93, 93, 93, 93,
+ 93, 93, 93, 93, 51, 51, 51, 94, 94, 94, 94, 94, 54, 54, 54, 54,
+ 54, 54, 13, 13, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
+ 95, 95, 95, 0, 96, 0, 97, 98, 99,100,100,100,100,101,102,103,
+ 103,103,103,104,105,105,105,106, 53, 53, 53, 53, 53, 0,105,105,
+ 0, 0, 0,103, 53, 53, 0, 0, 0, 0, 53,107, 0, 0, 0, 0,
+ 0,103,103,108,103,103,103,103,103,109, 0, 0, 95, 95, 95, 95,
+ 0, 0, 0, 0,110,110,110,110,110,110,110,110,110,110,110,110,
+ 110,111,111,111,112,112,112,112,112,112,112,112,112,112,112,112,
+ 13, 13, 13, 13, 13, 13,113,113,113,113,113,113, 0, 0,114, 4,
+ 4, 4, 4, 4,115, 4, 4, 4, 4, 4, 4, 4,116,116,116, 0,
+ 117,117,117,117,118,118,118,118,118,118, 33, 33,119,119,120,121,
+ 121,121, 53, 53,122,122,122,122,123,122, 50, 50,124,124,124,124,
+ 124,124, 50, 50,125,125,125,125,125,125,126,126, 54, 54, 54, 4,
+ 4,127,128, 55, 55, 55, 55, 55,126,126,126,126,129,129,129,129,
+ 129,129,129,129, 4,130, 19, 19, 19, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22,131, 0, 22, 22, 22, 8, 0,132, 0,
+ 0, 0, 0, 22, 22, 22, 22, 22, 22, 22, 22,133, 0, 0, 1, 2,
+ 1, 2,134,102,103,135, 53, 53, 53, 53, 0, 0,136,136,136,136,
+ 136,136,136,136, 0, 0, 0, 0, 11, 11, 11, 11, 11, 0, 11, 11,
+ 11, 0, 0,137,138,138,139,139,139,139,140, 0,141,141,141,142,
+ 142,143,143,143,144,144,145,145,145,145,145,145,146,146,146,146,
+ 146,147,147,147,148,148,148,149,149,149,149,149,150,150,150,151,
+ 151,151,151,151,152,152,152,152,152,152,152,152,153,153,153,153,
+ 154,154,155,155,156,156,156,156,156,156,157,157,158,158,159,159,
+ 159,159,159,159,160,160,161,161,161,161,161,161,162,162,162,162,
+ 162,162,163,163,164,164,164,164,165,165,165,165,166,166,166,166,
+ 167,167,168,168,169,169,169,169,169,169,169,169,170,170,170,170,
+ 170,170,170,170,171,171,171,171,171,171,171,171,172,172,172,172,
+ 172,172,172,172,173,173,173,174,174,174,174,174,175,175,175,175,
+ 175,175,175,175,176,176,176,176,176,176,176,176,177,177,177,177,
+ 177,178,178,178,179,179,179,179,179,180,180,180,181,181,181,181,
+ 181,181,182, 44,183,183,183,183,183,183,183,183,184,184,184,185,
+ 185,185,185,185,186,186,186,187,186,186,186,186,188,188,188,188,
+ 188,188,188,188,189,189,189,189,189,189,189,189,190,190,190,190,
+ 190,190,190,190,191,191,191,191,191,191, 67, 67,192,192,192,192,
+ 192,192,192,192,193,193,193,193,193,193,193,193,194,194,194,194,
+ 194,194,194,194,195,195,195,195,195,195,195,195,196,196,196,196,
+ 196,196,196,196,197,197,197,197,197,198,198,198,198,198,198,198,
+ 199,199,199,199,200,200,200,200,200,200,200,201,201,201,201,201,
+ 201,201,201,201,202,202,202,202,202,202,203,203,203,203,203,203,
+ 203,203,203,203,204,204,204,204,204,204,204,204,205,205,205,205,
+ 205,205,205,205,206,206,206,206,206,206,206,206,207,207,207,207,
+ 207,207,207,207,113,113,113,113,113,113,113,113,113,113,113,113,
+ 208,208,208,208,209,209,209,209,209,209,209,209,210,210,210,210,
+ 210,210,210,210,211,211,211,211,211,211,211,211,212,212,212,212,
+ 212,212,212,212,212,212,212,212,212,212,213, 0,214,214,214,214,
+ 214,214,214,214,215,100,100,100,100,100,100,100,100,100,100,100,
+ 100,100,100,100,100,100,100,100,100,100,216,217,217,217,217,217,
+ 217,217,217,217,218,218,218,218,218,218,218,218,218,218, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219,220,221, 0,222, 0,
+ 0, 0, 0, 0,223,223,223,223,223,223,223,223, 92, 92, 92, 92,
+ 92, 92, 92, 92,224,224,224,224,224,224,224,224,225,225,225,225,
+ 225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,
+ 227,227,227,227,228, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8,
+ 8, 8, 8, 8, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 3, 0,
+ 0, 0, 4, 0, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 5, 0,
+ 2, 5, 6, 0, 7, 7, 7, 7, 8, 9, 8, 10, 8, 11, 8, 8,
+ 8, 8, 8, 8, 12, 13, 13, 13, 14, 14, 14, 14, 14, 15, 14, 14,
+ 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 17, 19, 20, 20, 20,
+ 20, 20, 20, 20, 21, 22, 21, 23, 21, 21, 24, 24, 21, 21, 21, 21,
+ 23, 21, 25, 7, 7, 26, 21, 21, 27, 21, 21, 21, 21, 21, 21, 22,
+ 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31,
+ 32, 32, 32, 32, 33, 21, 21, 21, 34, 34, 34, 34, 35, 36, 34, 34,
+ 34, 37, 34, 34, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40,
+ 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44,
+ 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 48,
+ 49, 49, 49, 49, 50, 50, 50, 50, 50, 51, 52, 50, 53, 53, 53, 53,
+ 54, 54, 54, 54, 54, 54, 55, 54, 56, 56, 56, 56, 57, 57, 57, 57,
+ 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61,
+ 61, 61, 62, 63, 64, 64, 64, 64, 65, 65, 65, 65, 65, 66, 0, 0,
+ 67, 67, 67, 67, 68, 68, 68, 68, 69, 69, 69, 69, 70, 71, 72, 72,
+ 72, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, 75,
+ 76, 76, 76, 76, 77, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79,
+ 80, 80, 80, 80, 81, 81, 81, 81, 82, 82, 82, 82, 83, 7, 7, 7,
+ 84, 7, 85, 86, 0, 85, 87, 0, 2, 88, 89, 2, 2, 2, 2, 90,
+ 91, 88, 92, 2, 2, 2, 93, 2, 2, 2, 2, 94, 0, 0, 0, 87,
+ 1, 0, 0, 95, 0, 96, 97, 0, 4, 0, 0, 0, 0, 0, 0, 4,
+ 98, 98, 98, 98, 99, 99, 99, 99, 13, 13, 13, 13,100,100,100,100,
+ 101,101,101,101, 0,102, 0, 0,103,101,104,105, 0, 0,101, 0,
+ 106,107,107,107,107,107,107,107,107,107,108,106,109,110,110,110,
+ 110,110,110,110,110,110,111,109,112,112,112,112,113, 56, 56, 56,
+ 56, 56, 56,114,110,110,110,111,110,110, 0, 0,115,115,115,115,
+ 116,116,116,116,117,117,117,117,118,118,118,118, 97, 2, 2, 2,
+ 2, 2, 95, 2,119,119,119,119,120,120,120,120,121,121,121,121,
+ 122,122,122,122,122,122,122,123,124,124,124,124,125,125,125,125,
+ 125,125,125,126,127,127,127,127,128,128,128,128,129,129,129,129,
+ 2, 2, 3, 2, 2,130, 2, 2,131,131,131,131,132, 17, 17, 19,
+ 21, 21, 21,133, 7, 7, 7,134, 21, 21, 21, 24, 0,135,110,110,
+ 110,110,110,136,137,137,137,137, 0, 0, 0,138,139,139,139,139,
+ 140,140,140,140, 85, 0, 0, 0,141,141,141,141,142,142,142,142,
+ 143,143,143,143,144,144,144,144,145,145,145,145,146,146,146,146,
+ 147,147,147,147,148,148,148,148,149,149,149,149,150,150,150,150,
+ 151,151,151,151,152,152,152,152,153,153,153,153,154,154,154,154,
+ 155,155,155,155,156,156,156,156,157,157,157,157,158,158,158,158,
+ 159,159,159,159,160,160,160,160,161,161,161,161,162,162,162,162,
+ 163,163,163,163,164,164,164,164,165,165,165,165,166,166,166,166,
+ 167,167,167,167,168,168,168,168,169,169,169,169,170,170,170,170,
+ 171,171,171,171,172,172,172,172,173,173,173,173,174,174,174,174,
+ 175,175,175,175,176,176,176,176,177,177,177,177,178,178,178,178,
+ 179,179,179,179,180,180,180,180,181,181,181,181,182, 46, 46, 46,
+ 183,183,183,183,184,184,184,184,185,185,185,185,186,186,186,186,
+ 186,186,187,186,188,188,188,188,189,189,189,189,190,190,190,190,
+ 191,191,191,191,192,192,192,192,193,193,193,193,194,194,194,194,
+ 195,195,195,195,196,196,196,196,197,197,197,197,198,198,198,198,
+ 199,199,199,199,200,200,200,200,201,201,201,201,202,202,202,202,
+ 203,203,203,203,204,204,204,204,205,205,205,205,206,206,206,206,
+ 207,207,207,207,208,208,208,208,209,209,209,209,210,210,210,210,
+ 211,211,211,211,212,212,212,212,213, 0, 0, 0,214,214,214,214,
+ 215,107,107,107,107,110,110,110,216,216,216,216,217,217,217,217,
+ 0,218, 87, 0, 0, 0,218, 7, 83,138, 7, 0, 0, 0,219, 87,
+ 220,220,220,220,221,221,221,221,222,222,222,222,223,223,223,223,
+ 224,224,224,224,225, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 19, 0, 19, 0, 0, 0,
+ 0, 0, 26, 26, 1, 1, 1, 1, 9, 9, 9, 9, 0, 9, 9, 9,
+ 9, 9, 0, 9, 9, 0, 9, 0, 9, 9, 55, 55, 55, 55, 55, 55,
+ 6, 6, 6, 6, 6, 1, 1, 6, 6, 4, 4, 4, 4, 4, 4, 4,
+ 4, 0, 4, 4, 4, 14, 14, 14, 14, 14, 14, 14, 3, 3, 3, 3,
+ 3, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 1,
+ 1, 1, 3, 3, 1, 3, 3, 3, 37, 37, 37, 37, 38, 38, 38, 38,
+ 64, 64, 64, 64, 90, 90, 90, 90, 95, 95, 95, 95, 3, 3, 0, 3,
+ 7, 7, 7, 7, 7, 1, 1, 1, 1, 7, 7, 7, 0, 0, 7, 7,
+ 5, 5, 5, 5, 11, 11, 11, 11, 10, 10, 10, 10, 21, 21, 21, 21,
+ 22, 22, 22, 22, 23, 23, 23, 23, 16, 16, 16, 16, 20, 20, 20, 20,
+ 36, 36, 36, 36, 24, 24, 24, 24, 24, 24, 24, 0, 18, 18, 18, 18,
+ 25, 25, 25, 25, 25, 0, 0, 0, 0, 25, 25, 25, 33, 33, 33, 33,
+ 8, 8, 8, 8, 8, 8, 8, 0, 12, 12, 12, 12, 30, 30, 30, 30,
+ 29, 29, 29, 29, 28, 28, 28, 28, 34, 34, 34, 34, 35, 35, 35, 35,
+ 35, 35, 35, 0, 0, 0, 35, 35, 45, 45, 45, 45, 44, 44, 44, 44,
+ 44, 0, 0, 0, 43, 43, 43, 43, 46, 46, 46, 46, 31, 31, 31, 31,
+ 32, 32, 0, 0, 32, 0, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
+ 52, 52, 52, 52, 58, 58, 58, 58, 54, 54, 54, 54, 91, 91, 91, 91,
+ 62, 62, 62, 62, 76, 76, 76, 76, 93, 93, 93, 93, 70, 70, 70, 70,
+ 73, 73, 73, 73, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0,
+ 0, 1, 0, 0, 1, 1, 0, 0, 19, 19, 9, 9, 9, 9, 9, 6,
+ 19, 9, 9, 9, 9, 9, 19, 19, 9, 9, 9, 19, 6, 19, 19, 19,
+ 19, 19, 19, 9, 0, 0, 0, 19, 0, 0, 9, 0, 0, 0, 19, 19,
+ 27, 27, 27, 27, 56, 56, 56, 56, 61, 61, 61, 61, 13, 13, 13, 13,
+ 0, 13, 0, 13, 0, 13, 13, 13, 13, 13, 1, 1, 1, 1, 12, 12,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 0, 0, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 0, 26, 26, 26, 26, 26, 12, 12, 12,
+ 12, 12, 12, 0, 39, 39, 39, 39, 86, 86, 86, 86, 77, 77, 77, 77,
+ 79, 79, 79, 79, 60, 60, 60, 60, 65, 65, 65, 65, 75, 75, 75, 75,
+ 69, 69, 69, 69, 69, 69, 0, 69, 74, 74, 74, 74, 84, 84, 84, 84,
+ 84, 84, 84, 0, 68, 68, 68, 68, 92, 92, 92, 92, 87, 87, 87, 87,
+ 19, 9, 19, 19, 2, 2, 2, 2, 19, 19, 19, 4, 3, 3, 0, 0,
+ 1, 1, 6, 6, 0, 0, 17, 17, 17, 17, 0, 0, 49, 49, 49, 49,
+ 0, 1, 1, 1, 71, 71, 71, 71, 67, 67, 67, 67, 42, 42, 42, 42,
+ 41, 41, 41, 41,118,118,118,118, 53, 53, 53, 53, 59, 59, 59, 59,
+ 40, 40, 40, 40, 51, 51, 51, 51, 50, 50, 50, 50,135,135,135,135,
+ 106,106,106,106,104,104,104,104,110,110,110,110, 47, 47, 47, 47,
+ 81, 81, 81, 81,120,120,120,120,116,116,116,116,128,128,128,128,
+ 66, 66, 66, 66, 72, 72, 72, 72, 98, 98, 98, 98, 97, 97, 97, 97,
+ 57, 57, 57, 57, 88, 88, 88, 88,117,117,117,117,112,112,112,112,
+ 78, 78, 78, 78, 83, 83, 83, 83, 82, 82, 82, 82,122,122,122,122,
+ 89, 89, 89, 89,130,130,130,130,144,144,144,144,147,147,147,147,
+ 148,148,148,148,149,149,149,149, 94, 94, 94, 94, 85, 85, 85, 85,
+ 101,101,101,101, 96, 96, 96, 96,111,111,111,111,100,100,100,100,
+ 100, 36, 36, 36,108,108,108,108,129,129,129,129,109,109,109,109,
+ 107,107,107,107,107,107,107, 1,137,137,137,137,124,124,124,124,
+ 123,123,123,123,114,114,114,114,102,102,102,102,126,126,126,126,
+ 142,142,142,142,125,125,125,125,150,150,150,150,141,141,141,141,
+ 140,140,140,140,121,121,121,121,133,133,133,133,134,134,134,134,
+ 138,138,138,138,143,143,143,143,145,145,145,145, 63, 63, 63, 63,
+ 80, 80, 80, 80,127,127,127,127,115,115,115,115,103,103,103,103,
+ 119,119,119,119,146,146,146,146, 99, 99, 99, 99,136,139, 0, 0,
+ 136,136,136,136, 17, 15, 15, 15,139,139,139,139,105,105,105,105,
+ 0, 0, 0, 1, 0, 0, 1, 1,131,131,131,131,151,151,151,151,
+ 152,152,152,152,113,113,113,113,132,132,132,132, 15, 0, 0, 0,
+ 16, 50, 84,118, 88, 89, 90, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 91,
+ 85, 85,220, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 94, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 0,
+ 31, 32, 0, 33, 0, 34, 0, 35, 0, 0, 0, 0, 36, 37, 38, 39,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 43, 44, 0, 45, 0, 0, 0, 0, 0, 0, 46, 47, 0, 0,
+ 0, 0, 0, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 50, 51, 0, 0, 0, 52, 0, 0, 53, 0, 0, 0,
+ 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0,
+ 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, 65, 0, 0, 0, 0,
+ 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 67, 68, 0, 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,
+ 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,104, 0, 0, 0, 0, 0, 0,105,106, 0,107, 0, 0, 0,
+ 108, 0,109, 0,110, 0,111,112,113, 0,114, 0, 0, 0,115, 0,
+ 0, 0,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,118,119,120,121, 0,122,123,124,125,126, 0,127,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
+ 144,145,146,147,148,149,150,151,152,153,154,155,156,157, 0, 0,
+ 0,158,159,160,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,162,163, 0, 0, 0, 0, 0,
+ 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,168,169, 0, 0, 0, 0,170,171, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,
+ 188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,
+ 204,205, 0, 0, 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, 2, 3, 4,
+};
+static const uint16_t
+_hb_ucd_u16[4800] =
+{
+ 0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
+ 13, 13, 13, 14, 15, 13, 13, 16, 17, 18, 19, 20, 21, 22, 13, 23,
+ 13, 13, 13, 24, 25, 11, 11, 11, 11, 26, 11, 27, 28, 29, 30, 31,
+ 32, 32, 32, 32, 32, 32, 32, 33, 34, 35, 36, 11, 37, 38, 13, 39,
+ 9, 9, 9, 11, 11, 11, 13, 13, 40, 13, 13, 13, 41, 13, 13, 13,
+ 13, 13, 13, 35, 9, 42, 11, 11, 43, 44, 32, 45, 46, 47, 47, 48,
+ 49, 50, 47, 47, 51, 32, 52, 53, 47, 47, 47, 47, 47, 54, 55, 56,
+ 57, 58, 47, 32, 59, 47, 47, 47, 47, 47, 60, 53, 61, 47, 62, 63,
+ 47, 64, 65, 66, 47, 67, 47, 47, 47, 47, 47, 47, 47, 68, 69, 32,
+ 70, 47, 47, 71, 72, 73, 74, 75, 76, 47, 47, 77, 78, 79, 80, 81,
+ 82, 47, 47, 83, 84, 85, 86, 87, 82, 47, 47, 77, 88, 47, 80, 89,
+ 90, 47, 47, 91, 92, 93, 80, 94, 95, 47, 47, 96, 97, 98, 99, 100,
+ 101, 47, 47, 102, 103, 104, 80, 105, 106, 47, 47, 91, 107, 108, 80, 109,
+ 90, 47, 47, 110, 111, 112, 80, 113, 114, 47, 47, 47, 115, 116, 99, 117,
+ 47, 47, 47, 118, 119, 120, 66, 66, 47, 47, 47, 121, 122, 123, 47, 47,
+ 124, 125, 126, 127, 47, 47, 47, 128, 129, 32, 32, 130, 131, 132, 66, 66,
+ 47, 47, 133, 134, 120, 135, 136, 137, 138, 139, 9, 9, 9, 11, 11, 140,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 141, 142, 143,
+ 47, 144, 9, 9, 9, 9, 9, 145, 146, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 147, 47, 148, 149, 47, 47, 47, 47, 150, 151,
+ 47, 152, 47, 153, 47, 152, 47, 152, 47, 47, 47, 154, 155, 156, 157, 143,
+ 158, 157, 47, 47, 159, 47, 47, 47, 160, 47, 161, 47, 47, 47, 47, 47,
+ 47, 47, 162, 163, 164, 47, 47, 47, 47, 47, 47, 47, 47, 165, 144, 144,
+ 47, 166, 47, 47, 47, 167, 168, 169, 157, 157, 170, 171, 172, 172, 172, 172,
+ 173, 47, 47, 174, 175, 120, 176, 177, 178, 47, 179, 61, 47, 47, 180, 181,
+ 47, 47, 182, 183, 184, 61, 47, 185, 11, 9, 9, 9, 66, 186, 187, 188,
+ 11, 11, 189, 27, 27, 27, 190, 191, 11, 192, 27, 27, 32, 32, 32, 32,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 193, 13, 13, 13, 13, 13, 13,
+ 194, 194, 194, 194, 194, 195, 194, 11, 196, 196, 196, 197, 198, 199, 199, 198,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 27, 209, 209, 209, 210, 211, 32,
+ 212, 213, 214, 215, 216, 143, 217, 217, 218, 219, 220, 144, 221, 222, 144, 223,
+ 224, 224, 224, 224, 224, 224, 224, 224, 225, 144, 226, 144, 144, 144, 144, 227,
+ 144, 228, 224, 229, 144, 230, 231, 144, 144, 144, 144, 144, 144, 144, 143, 143,
+ 143, 232, 144, 144, 144, 144, 233, 143, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 234, 235, 144, 144, 236, 144, 144, 144, 144, 144, 144, 237, 144,
+ 144, 144, 144, 144, 144, 144, 238, 239, 143, 240, 144, 144, 241, 224, 242, 224,
+ 243, 244, 224, 224, 224, 245, 224, 246, 144, 144, 144, 224, 247, 144, 144, 144,
+ 9, 9, 9, 11, 11, 11, 248, 249, 13, 13, 13, 13, 13, 13, 250, 251,
+ 11, 11, 11, 47, 47, 47, 252, 253, 47, 47, 47, 47, 47, 47, 32, 32,
+ 254, 255, 256, 257, 258, 66, 66, 66, 259, 260, 261, 262, 263, 47, 47, 47,
+ 47, 264, 146, 47, 47, 47, 47, 265, 47, 266, 47, 47, 144, 144, 144, 47,
+ 144, 144, 267, 144, 268, 269, 144, 144, 267, 144, 144, 269, 144, 144, 144, 144,
+ 47, 47, 47, 47, 144, 144, 144, 144, 47, 270, 47, 47, 47, 47, 47, 47,
+ 47, 144, 144, 144, 144, 47, 47, 185, 271, 47, 61, 47, 13, 13, 272, 273,
+ 13, 274, 47, 47, 47, 47, 275, 276, 31, 277, 278, 279, 13, 13, 13, 280,
+ 281, 282, 283, 284, 285, 9, 9, 286, 287, 47, 288, 289, 47, 47, 47, 290,
+ 291, 47, 47, 292, 293, 157, 32, 294, 61, 47, 295, 47, 296, 297, 47, 47,
+ 70, 47, 47, 298, 299, 300, 301, 61, 47, 47, 302, 303, 304, 305, 47, 306,
+ 47, 47, 47, 307, 58, 308, 309, 310, 47, 47, 47, 11, 11, 311, 11, 11,
+ 11, 11, 11, 11, 47, 47, 312, 157, 313, 313, 313, 313, 313, 313, 313, 313,
+ 314, 314, 314, 314, 314, 314, 314, 314, 11, 315, 316, 47, 47, 47, 47, 47,
+ 47, 47, 47, 317, 31, 318, 47, 47, 47, 47, 47, 319, 320, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 321, 32, 322, 32, 323, 324, 325, 326, 47,
+ 47, 47, 47, 47, 47, 47, 47, 327, 328, 2, 3, 4, 5, 329, 330, 331,
+ 47, 332, 47, 47, 47, 47, 333, 334, 335, 143, 143, 336, 217, 217, 217, 337,
+ 338, 144, 144, 144, 144, 144, 144, 339, 340, 340, 340, 340, 340, 340, 340, 340,
+ 47, 47, 47, 47, 47, 47, 341, 143, 47, 47, 342, 47, 343, 47, 47, 60,
+ 47, 344, 47, 47, 47, 345, 217, 217, 9, 9, 145, 11, 11, 47, 47, 47,
+ 47, 47, 157, 9, 9, 145, 11, 11, 47, 47, 47, 47, 47, 47, 344, 66,
+ 47, 47, 47, 47, 47, 346, 47, 347, 47, 47, 348, 143, 143, 143, 47, 349,
+ 47, 350, 47, 344, 66, 66, 66, 66, 47, 47, 47, 351, 143, 143, 143, 143,
+ 352, 47, 47, 353, 143, 66, 47, 354, 47, 355, 143, 143, 356, 47, 357, 66,
+ 47, 47, 47, 358, 47, 359, 47, 359, 47, 358, 142, 143, 143, 143, 143, 143,
+ 9, 9, 9, 9, 11, 11, 11, 360, 47, 47, 361, 157, 157, 157, 157, 157,
+ 143, 143, 143, 143, 143, 143, 143, 143, 47, 355, 362, 47, 60, 363, 66, 66,
+ 364, 47, 47, 353, 365, 366, 367, 368, 178, 47, 47, 369, 370, 47, 47, 157,
+ 95, 47, 371, 372, 373, 47, 47, 374, 178, 47, 47, 375, 376, 377, 378, 143,
+ 47, 47, 379, 380, 32, 32, 32, 32, 47, 47, 358, 47, 47, 381, 169, 157,
+ 90, 47, 47, 110, 382, 383, 384, 32, 47, 47, 47, 385, 386, 387, 47, 47,
+ 47, 47, 47, 388, 389, 157, 157, 157, 47, 47, 390, 391, 392, 393, 32, 32,
+ 47, 47, 47, 394, 395, 157, 66, 66, 47, 47, 396, 397, 157, 157, 157, 157,
+ 47, 141, 398, 399, 144, 144, 144, 144, 47, 47, 379, 400, 66, 66, 66, 66,
+ 9, 9, 9, 9, 11, 11, 126, 401, 47, 47, 47, 47, 47, 402, 403, 404,
+ 405, 47, 47, 406, 407, 408, 47, 47, 409, 410, 66, 66, 47, 47, 47, 47,
+ 47, 47, 390, 411, 412, 126, 143, 413, 47, 152, 414, 415, 32, 32, 32, 32,
+ 47, 47, 47, 352, 416, 157, 47, 47, 417, 418, 157, 157, 157, 157, 157, 157,
+ 47, 47, 47, 47, 47, 47, 47, 419, 143, 143, 143, 143, 143, 420, 421, 422,
+ 217, 217, 217, 217, 217, 217, 217, 66, 47, 47, 47, 206, 206, 206, 206, 206,
+ 47, 47, 47, 47, 47, 47, 300, 66, 47, 47, 47, 47, 47, 47, 47, 423,
+ 47, 47, 47, 424, 425, 426, 427, 47, 9, 9, 9, 9, 9, 9, 11, 11,
+ 143, 428, 66, 66, 66, 66, 66, 66, 47, 47, 47, 47, 381, 429, 404, 404,
+ 430, 431, 27, 27, 27, 27, 432, 27, 47, 433, 206, 206, 206, 206, 206, 206,
+ 144, 144, 144, 144, 144, 144, 434, 435, 436, 144, 437, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 438, 144, 144, 144, 9, 439, 11, 440, 441, 11, 194, 9,
+ 442, 443, 9, 444, 11, 9, 439, 11, 440, 441, 11, 194, 9, 442, 443, 9,
+ 444, 11, 9, 439, 11, 440, 441, 11, 194, 9, 442, 443, 9, 444, 11, 9,
+ 439, 11, 194, 9, 445, 446, 447, 448, 11, 449, 9, 450, 451, 452, 453, 11,
+ 454, 9, 455, 11, 456, 157, 157, 157, 32, 32, 32, 457, 32, 32, 458, 459,
+ 460, 461, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 47, 47, 47, 462, 463, 144, 144, 144, 47, 47, 47, 47, 47, 47, 464, 465,
+ 47, 47, 47, 47, 348, 32, 32, 32, 9, 9, 442, 11, 466, 300, 66, 66,
+ 143, 143, 467, 468, 143, 143, 143, 143, 143, 143, 469, 143, 143, 143, 143, 143,
+ 47, 47, 47, 47, 47, 47, 47, 224, 143, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 470, 206, 206, 206, 206, 206, 206, 206, 206,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 939, 940, 941, 942, 946, 948, 0, 962, 969, 970, 971, 976,1001,1002,1003,1008,
+ 0,1033,1040,1041,1042,1043,1047, 0, 0,1080,1081,1082,1086,1110, 0, 0,
+ 1124,1125,1126,1127,1131,1133, 0,1147,1154,1155,1156,1161,1187,1188,1189,1193,
+ 0,1219,1226,1227,1228,1229,1233, 0, 0,1267,1268,1269,1273,1298, 0,1303,
+ 943,1128, 944,1129, 954,1139, 958,1143, 959,1144, 960,1145, 961,1146, 964,1149,
+ 0, 0, 973,1158, 974,1159, 975,1160, 983,1168, 978,1163, 988,1173, 990,1175,
+ 991,1176, 993,1178, 994,1179, 0, 0,1004,1190,1005,1191,1006,1192,1014,1199,
+ 1007, 0, 0, 0,1016,1201,1020,1206, 0,1022,1208,1025,1211,1023,1209, 0,
+ 0, 0, 0,1032,1218,1037,1223,1035,1221, 0, 0, 0,1044,1230,1045,1231,
+ 1049,1235, 0, 0,1058,1244,1064,1250,1060,1246,1066,1252,1067,1253,1072,1258,
+ 1069,1255,1077,1264,1074,1261, 0, 0,1083,1270,1084,1271,1085,1272,1088,1275,
+ 1089,1276,1096,1283,1103,1290,1111,1299,1115,1118,1307,1120,1309,1121,1310, 0,
+ 1053,1239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1093,
+ 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 949,1134,1010,
+ 1195,1050,1236,1090,1277,1341,1368,1340,1367,1342,1369,1339,1366, 0,1320,1347,
+ 1418,1419,1323,1350, 0, 0, 992,1177,1018,1204,1055,1241,1416,1417,1415,1424,
+ 1202, 0, 0, 0, 987,1172, 0, 0,1031,1217,1321,1348,1322,1349,1338,1365,
+ 950,1135, 951,1136, 979,1164, 980,1165,1011,1196,1012,1197,1051,1237,1052,1238,
+ 1061,1247,1062,1248,1091,1278,1092,1279,1071,1257,1076,1263, 0, 0, 997,1182,
+ 0, 0, 0, 0, 0, 0, 945,1130, 982,1167,1337,1364,1335,1362,1046,1232,
+ 1422,1423,1113,1301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 9, 0, 10,1425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0,1314,1427, 5,1434,1438,1443, 0,1450, 0,1455,1461,
+ 1514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1446,1458,1468,1476,1480,1486,
+ 1517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1489,1503,1494,1500,1508, 0,
+ 0, 0, 0,1520,1521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1526,1528, 0,1525, 0, 0, 0,1522, 0, 0, 0, 0,1536,1532,1539, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,1534, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,1556, 0, 0, 0, 0, 0, 0,
+ 1548,1550, 0,1547, 0, 0, 0,1567, 0, 0, 0, 0,1558,1554,1561, 0,
+ 0, 0, 0, 0, 0, 0,1568,1569, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,1529,1551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1523,1545,1524,1546, 0, 0,1527,1549, 0, 0,1570,1571,1530,1552,1531,1553,
+ 0, 0,1533,1555,1535,1557,1537,1559, 0, 0,1572,1573,1544,1566,1538,1560,
+ 1540,1562,1541,1563,1542,1564, 0, 0,1543,1565, 0, 0, 0, 0, 0, 0,
+ 0, 0,1606,1607,1609,1608,1610, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1613, 0,1611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0,1612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,1620, 0, 0, 0, 0, 0, 0,
+ 0,1623, 0, 0,1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,1614,1615,1616,1617,1618,1619,1621,1622,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1628,1629, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1625,1626, 0,1627,
+ 0, 0, 0,1634, 0, 0,1635, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,1630,1631,1632, 0, 0,1633, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,1639, 0, 0,1638,1640, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1636,1637, 0, 0,
+ 0, 0, 0, 0,1641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1642,1644,1643, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,1645, 0, 0, 0, 0, 0, 0, 0,
+ 1646, 0, 0, 0, 0, 0, 0,1648,1649, 0,1647,1650, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1651,1653,1652, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1654, 0,1655,1657,1656, 0,
+ 0, 0, 0,1659, 0, 0, 0, 0, 0, 0, 0, 0, 0,1660, 0, 0,
+ 0, 0,1661, 0, 0, 0, 0,1662, 0, 0, 0, 0,1663, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,1658, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0,1664, 0,1665,1673, 0,1674, 0, 0, 0, 0, 0, 0, 0,
+ 0,1666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0,1668, 0, 0, 0, 0, 0, 0, 0, 0, 0,1669, 0, 0,
+ 0, 0,1670, 0, 0, 0, 0,1671, 0, 0, 0, 0,1672, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,1667, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,1675, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,1676, 0,1677, 0,1678, 0,1679, 0,1680, 0,
+ 0, 0,1681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1682, 0,1683, 0, 0,
+ 1684,1685, 0,1686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 953,1138, 955,1140, 956,1141, 957,1142,1324,1351, 963,1148, 965,1150, 968,1153,
+ 966,1151, 967,1152,1378,1380,1379,1381, 984,1169, 985,1170,1420,1421, 986,1171,
+ 989,1174, 995,1180, 998,1183, 996,1181, 999,1184,1000,1185,1015,1200,1329,1356,
+ 1017,1203,1019,1205,1021,1207,1024,1210,1687,1688,1027,1213,1026,1212,1028,1214,
+ 1029,1215,1030,1216,1034,1220,1036,1222,1039,1225,1038,1224,1334,1361,1336,1363,
+ 1382,1384,1383,1385,1056,1242,1057,1243,1059,1245,1063,1249,1689,1690,1065,1251,
+ 1068,1254,1070,1256,1386,1387,1388,1389,1691,1692,1073,1259,1075,1262,1079,1266,
+ 1078,1265,1095,1282,1098,1285,1097,1284,1390,1391,1392,1393,1099,1286,1100,1287,
+ 1101,1288,1102,1289,1105,1292,1104,1291,1106,1294,1107,1295,1108,1296,1114,1302,
+ 1119,1308,1122,1311,1123,1312,1186,1260,1293,1305, 0,1394, 0, 0, 0, 0,
+ 952,1137, 947,1132,1317,1344,1316,1343,1319,1346,1318,1345,1693,1695,1371,1375,
+ 1370,1374,1373,1377,1372,1376,1694,1696, 981,1166, 977,1162, 972,1157,1326,1353,
+ 1325,1352,1328,1355,1327,1354,1697,1698,1009,1194,1013,1198,1054,1240,1048,1234,
+ 1331,1358,1330,1357,1333,1360,1332,1359,1699,1700,1396,1401,1395,1400,1398,1403,
+ 1397,1402,1399,1404,1094,1281,1087,1274,1406,1411,1405,1410,1408,1413,1407,1412,
+ 1409,1414,1109,1297,1117,1306,1116,1304,1112,1300, 0, 0, 0, 0, 0, 0,
+ 1471,1472,1701,1705,1702,1706,1703,1707,1430,1431,1715,1719,1716,1720,1717,1721,
+ 1477,1478,1729,1731,1730,1732, 0, 0,1435,1436,1733,1735,1734,1736, 0, 0,
+ 1481,1482,1737,1741,1738,1742,1739,1743,1439,1440,1751,1755,1752,1756,1753,1757,
+ 1490,1491,1765,1768,1766,1769,1767,1770,1447,1448,1771,1774,1772,1775,1773,1776,
+ 1495,1496,1777,1779,1778,1780, 0, 0,1451,1452,1781,1783,1782,1784, 0, 0,
+ 1504,1505,1785,1788,1786,1789,1787,1790, 0,1459, 0,1791, 0,1792, 0,1793,
+ 1509,1510,1794,1798,1795,1799,1796,1800,1462,1463,1808,1812,1809,1813,1810,1814,
+ 1467, 21,1475, 22,1479, 23,1485, 24,1493, 27,1499, 28,1507, 29, 0, 0,
+ 1704,1708,1709,1710,1711,1712,1713,1714,1718,1722,1723,1724,1725,1726,1727,1728,
+ 1740,1744,1745,1746,1747,1748,1749,1750,1754,1758,1759,1760,1761,1762,1763,1764,
+ 1797,1801,1802,1803,1804,1805,1806,1807,1811,1815,1816,1817,1818,1819,1820,1821,
+ 1470,1469,1822,1474,1465, 0,1473,1825,1429,1428,1426, 12,1432, 0, 26, 0,
+ 0,1315,1823,1484,1466, 0,1483,1829,1433, 13,1437, 14,1441,1826,1827,1828,
+ 1488,1487,1513, 19, 0, 0,1492,1515,1445,1444,1442, 15, 0,1831,1832,1833,
+ 1502,1501,1516, 25,1497,1498,1506,1518,1457,1456,1454, 17,1453,1313, 11, 3,
+ 0, 0,1824,1512,1519, 0,1511,1830,1449, 16,1460, 18,1464, 4, 0, 0,
+ 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 2, 6, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1834,1835, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1836, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1837,1839,1838,
+ 0, 0, 0, 0,1840, 0, 0, 0, 0,1841, 0, 0,1842, 0, 0, 0,
+ 0, 0, 0, 0,1843, 0,1844, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,1845, 0, 0,1846, 0, 0,1847, 0,1848, 0, 0, 0, 0, 0, 0,
+ 937, 0,1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1849, 936, 938,
+ 1851,1852, 0, 0,1853,1854, 0, 0,1855,1856, 0, 0, 0, 0, 0, 0,
+ 1857,1858, 0, 0,1861,1862, 0, 0,1863,1864, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1867,1868,1869,1870,
+ 1859,1860,1865,1866, 0, 0, 0, 0, 0, 0,1871,1872,1873,1874, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 33, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1875, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1877, 0,1878, 0,
+ 1879, 0,1880, 0,1881, 0,1882, 0,1883, 0,1884, 0,1885, 0,1886, 0,
+ 1887, 0,1888, 0, 0,1889, 0,1890, 0,1891, 0, 0, 0, 0, 0, 0,
+ 1892,1893, 0,1894,1895, 0,1896,1897, 0,1898,1899, 0,1900,1901, 0, 0,
+ 0, 0, 0, 0,1876, 0, 0, 0, 0, 0, 0, 0, 0, 0,1902, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1904, 0,1905, 0,
+ 1906, 0,1907, 0,1908, 0,1909, 0,1910, 0,1911, 0,1912, 0,1913, 0,
+ 1914, 0,1915, 0, 0,1916, 0,1917, 0,1918, 0, 0, 0, 0, 0, 0,
+ 1919,1920, 0,1921,1922, 0,1923,1924, 0,1925,1926, 0,1927,1928, 0, 0,
+ 0, 0, 0, 0,1903, 0, 0,1929,1930,1931,1932, 0, 0, 0,1933, 0,
+ 710, 385, 724, 715, 455, 103, 186, 825, 825, 242, 751, 205, 241, 336, 524, 601,
+ 663, 676, 688, 738, 411, 434, 474, 500, 649, 746, 799, 108, 180, 416, 482, 662,
+ 810, 275, 462, 658, 692, 344, 618, 679, 293, 388, 440, 492, 740, 116, 146, 168,
+ 368, 414, 481, 527, 606, 660, 665, 722, 781, 803, 809, 538, 553, 588, 642, 758,
+ 811, 701, 233, 299, 573, 612, 487, 540, 714, 779, 232, 267, 412, 445, 457, 585,
+ 594, 766, 167, 613, 149, 148, 560, 589, 648, 768, 708, 345, 411, 704, 105, 259,
+ 313, 496, 518, 174, 542, 120, 307, 101, 430, 372, 584, 183, 228, 529, 650, 697,
+ 424, 732, 428, 349, 632, 355, 517, 110, 135, 147, 403, 580, 624, 700, 750, 170,
+ 193, 245, 297, 374, 463, 543, 763, 801, 812, 815, 162, 384, 420, 730, 287, 330,
+ 337, 366, 459, 476, 509, 558, 591, 610, 726, 652, 734, 759, 154, 163, 198, 473,
+ 683, 697, 292, 311, 353, 423, 572, 494, 113, 217, 259, 280, 314, 499, 506, 603,
+ 608, 752, 778, 782, 788, 117, 557, 748, 774, 320, 109, 126, 260, 265, 373, 411,
+ 479, 523, 655, 737, 823, 380, 765, 161, 395, 398, 438, 451, 502, 516, 537, 583,
+ 791, 136, 340, 769, 122, 273, 446, 727, 305, 322, 400, 496, 771, 155, 190, 269,
+ 377, 391, 406, 432, 501, 519, 599, 684, 687, 749, 776, 175, 452, 191, 480, 510,
+ 659, 772, 805, 813, 397, 444, 619, 566, 568, 575, 491, 471, 707, 111, 636, 156,
+ 153, 288, 346, 578, 256, 435, 383, 729, 680, 767, 694, 295, 128, 210, 0, 0,
+ 227, 0, 379, 0, 0, 150, 493, 525, 544, 551, 552, 556, 783, 576, 604, 0,
+ 661, 0, 703, 0, 0, 735, 743, 0, 0, 0, 793, 794, 795, 808, 741, 773,
+ 118, 127, 130, 166, 169, 177, 207, 213, 215, 226, 229, 268, 270, 317, 327, 329,
+ 335, 369, 375, 381, 404, 441, 448, 458, 477, 484, 503, 539, 545, 547, 546, 548,
+ 549, 550, 554, 555, 561, 564, 569, 591, 593, 595, 598, 607, 620, 625, 625, 651,
+ 690, 695, 705, 706, 716, 717, 733, 735, 777, 786, 790, 315, 869, 623, 0, 0,
+ 102, 145, 134, 115, 129, 138, 165, 171, 207, 202, 206, 212, 227, 231, 240, 243,
+ 250, 254, 294, 296, 303, 308, 319, 325, 321, 329, 326, 335, 341, 357, 360, 362,
+ 370, 379, 388, 389, 393, 421, 424, 438, 456, 454, 458, 465, 477, 535, 485, 490,
+ 493, 507, 512, 514, 521, 522, 525, 526, 528, 533, 532, 541, 565, 569, 574, 586,
+ 591, 597, 607, 637, 647, 674, 691, 693, 695, 698, 703, 699, 705, 704, 702, 706,
+ 709, 717, 728, 736, 747, 754, 770, 777, 783, 784, 786, 787, 790, 802, 825, 848,
+ 847, 857, 55, 65, 66, 883, 892, 916, 822, 824, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1586, 0,1605,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1602,1603,1934,1935,1574,1575,
+ 1576,1577,1579,1580,1581,1583,1584, 0,1585,1587,1588,1589,1591, 0,1592, 0,
+ 1593,1594, 0,1595,1596, 0,1598,1599,1600,1601,1604,1582,1578,1590,1597, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1936, 0,1937, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1938, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1939,1940,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1941,1942, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1944,1943, 0,1945, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1946,1947, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1948,1949,
+ 1950,1951,1952,1953,1954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1955,1956,1957,1959,1958,
+ 1960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 106, 104, 107, 826, 114, 118, 119, 121, 123, 124, 127, 125, 34, 830, 130, 131,
+ 132, 137, 827, 35, 133, 139, 829, 142, 143, 112, 144, 145, 924, 151, 152, 37,
+ 157, 158, 159, 160, 38, 165, 166, 169, 171, 172, 173, 174, 176, 177, 178, 179,
+ 181, 182, 182, 182, 833, 468, 184, 185, 834, 187, 188, 189, 196, 192, 194, 195,
+ 197, 199, 200, 201, 203, 204, 204, 206, 208, 209, 211, 218, 213, 219, 214, 216,
+ 153, 234, 221, 222, 223, 220, 225, 224, 230, 835, 235, 236, 237, 238, 239, 244,
+ 836, 837, 247, 248, 249, 246, 251, 39, 40, 253, 255, 255, 838, 257, 258, 259,
+ 261, 839, 262, 263, 301, 264, 41, 266, 270, 272, 271, 841, 274, 842, 277, 276,
+ 278, 281, 282, 42, 283, 284, 285, 286, 43, 843, 44, 289, 290, 291, 293, 934,
+ 298, 845, 845, 621, 300, 300, 45, 852, 894, 302, 304, 46, 306, 309, 310, 312,
+ 316, 48, 47, 317, 846, 318, 323, 324, 325, 324, 328, 329, 333, 331, 332, 334,
+ 335, 336, 338, 339, 342, 343, 347, 351, 849, 350, 348, 352, 354, 359, 850, 361,
+ 358, 356, 49, 363, 365, 367, 364, 50, 369, 371, 851, 376, 386, 378, 53, 381,
+ 52, 51, 140, 141, 387, 382, 614, 78, 388, 389, 390, 394, 392, 856, 54, 399,
+ 396, 402, 404, 858, 405, 401, 407, 55, 408, 409, 410, 413, 859, 415, 56, 417,
+ 860, 418, 57, 419, 422, 424, 425, 861, 840, 862, 426, 863, 429, 431, 427, 433,
+ 437, 441, 438, 439, 442, 443, 864, 436, 449, 450, 58, 454, 453, 865, 447, 460,
+ 866, 867, 461, 466, 465, 464, 59, 467, 470, 469, 472, 828, 475, 868, 478, 870,
+ 483, 485, 486, 871, 488, 489, 872, 873, 495, 497, 60, 498, 61, 61, 504, 505,
+ 507, 508, 511, 62, 513, 874, 515, 875, 518, 844, 520, 876, 877, 878, 63, 64,
+ 528, 880, 879, 881, 882, 530, 531, 531, 533, 66, 534, 67, 68, 884, 536, 538,
+ 541, 69, 885, 549, 886, 887, 556, 559, 70, 561, 562, 563, 888, 889, 889, 567,
+ 71, 890, 570, 571, 72, 891, 577, 73, 581, 579, 582, 893, 587, 74, 590, 592,
+ 596, 75, 895, 896, 76, 897, 600, 898, 602, 605, 607, 899, 900, 609, 901, 611,
+ 853, 77, 615, 616, 79, 617, 252, 902, 903, 854, 855, 621, 622, 731, 80, 627,
+ 626, 628, 164, 629, 630, 631, 633, 904, 632, 634, 639, 640, 635, 641, 646, 651,
+ 638, 643, 644, 645, 905, 907, 906, 81, 653, 654, 656, 911, 657, 908, 82, 83,
+ 909, 910, 84, 664, 665, 666, 667, 669, 668, 671, 670, 674, 672, 673, 675, 85,
+ 677, 678, 86, 681, 682, 912, 685, 686, 87, 689, 36, 913, 914, 88, 89, 696,
+ 702, 709, 711, 915, 712, 713, 718, 719, 917, 831, 721, 720, 723, 832, 725, 728,
+ 918, 919, 739, 742, 744, 920, 745, 753, 756, 757, 755, 760, 761, 921, 762, 90,
+ 764, 922, 91, 775, 279, 780, 923, 925, 92, 93, 785, 926, 94, 927, 787, 787,
+ 789, 928, 792, 95, 796, 797, 798, 800, 96, 929, 802, 804, 806, 97, 98, 807,
+ 930, 99, 931, 932, 933, 814, 100, 816, 817, 818, 819, 820, 821, 935, 0, 0,
+};
+static const int16_t
+_hb_ucd_i16[92] =
+{
+ 0, 0, 1, -1, 2, 0, -2, 0, 0, 2, 0, -2, 0, 16, 0, -16,
+ 0, 1, -1, 0, 3, 3, 3, -3, -3, -3, 0, 2016, 0, 2527, 1923, 1914,
+ 1918, 0, 2250, 0, 0, 138, 0, 7, -7, 0, -1, 1, 1824, 0, 2104, 0,
+ 2108, 2106, 0, 2106, 1316, 0, -1, -138, 8, 8, 8, 0, 7, 7, -8, -8,
+ -8, -7,-1316, 1, -1, 3, -3, 1, 0,-1914,-1918, 0, 0,-1923,-1824, 0,
+ 0,-2016,-2104, 0, 0,-2106,-2108,-2106,-2250, 0,-2527, 0,
+};
+
+static inline uint_fast8_t
+_hb_ucd_gc (unsigned u)
+{
+ return u<1114112u?_hb_ucd_u8[4840+(((_hb_ucd_u8[1072+(((_hb_ucd_u16[((_hb_ucd_u8[272+(((_hb_ucd_u8[u>>1>>3>>3>>5])<<5)+((u>>1>>3>>3)&31u))])<<3)+((u>>1>>3)&7u)])<<3)+((u>>1)&7u))])<<1)+((u)&1u))]:2;
+}
+static inline uint_fast8_t
+_hb_ucd_ccc (unsigned u)
+{
+ return u<125259u?_hb_ucd_u8[6670+(((_hb_ucd_u8[6166+(((_hb_ucd_u8[5754+(((_hb_ucd_u8[5306+(((_hb_ucd_u8[5182+(u>>2>>2>>2>>4)])<<4)+((u>>2>>2>>2)&15u))])<<2)+((u>>2>>2)&3u))])<<2)+((u>>2)&3u))])<<2)+((u)&3u))]:0;
+}
+static inline unsigned
+_hb_ucd_b4 (const uint8_t* a, unsigned i)
+{
+ return (a[i>>1]>>((i&1u)<<2))&15u;
+}
+static inline int_fast16_t
+_hb_ucd_bmg (unsigned u)
+{
+ return u<65380u?_hb_ucd_i16[((_hb_ucd_u8[7538+(((_hb_ucd_u8[7314+(((_hb_ucd_u8[7218+(((_hb_ucd_b4(7154+_hb_ucd_u8,u>>1>>2>>3>>3))<<3)+((u>>1>>2>>3)&7u))])<<3)+((u>>1>>2)&7u))])<<2)+((u>>1)&3u))])<<1)+((u)&1u)]:0;
+}
+static inline uint_fast8_t
+_hb_ucd_sc (unsigned u)
+{
+ return u<918016u?_hb_ucd_u8[11048+(((_hb_ucd_u8[10132+(((_hb_ucd_u8[8788+(((_hb_ucd_u8[8228+(((_hb_ucd_u8[7778+(u>>2>>2>>3>>4)])<<4)+((u>>2>>2>>3)&15u))])<<3)+((u>>2>>2)&7u))])<<2)+((u>>2)&3u))])<<2)+((u)&3u))]:2;
+}
+static inline uint_fast16_t
+_hb_ucd_dm (unsigned u)
+{
+ return u<195102u?_hb_ucd_u16[1504+(((_hb_ucd_u8[12048+(((_hb_ucd_b4(11952+_hb_ucd_u8,u>>4>>6))<<6)+((u>>4)&63u))])<<4)+((u)&15u))]:0;
}
#endif
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd.cc
index 4d35017a640..69949a2883b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ucd.cc
@@ -114,6 +114,14 @@ _cmp_pair (const void *_key, const void *_item)
return a < b ? -1 : a > b ? +1 : 0;
}
+static int
+_cmp_pair_11_7_14 (const void *_key, const void *_item)
+{
+ uint32_t& a = * (uint32_t*) _key;
+ uint32_t b = (* (uint32_t*) _item) & HB_CODEPOINT_ENCODE3_11_7_14(0x1FFFFFu, 0x1FFFFFu, 0);
+
+ return a < b ? -1 : a > b ? +1 : 0;
+}
static hb_bool_t
hb_ucd_compose (hb_unicode_funcs_t *ufuncs HB_UNUSED,
@@ -122,16 +130,30 @@ hb_ucd_compose (hb_unicode_funcs_t *ufuncs HB_UNUSED,
{
if (_hb_ucd_compose_hangul (a, b, ab)) return true;
- uint64_t k = HB_CODEPOINT_ENCODE3 (a, b, 0);
- uint64_t *v = (uint64_t*) hb_bsearch (&k, _hb_ucd_dm2_map,
- ARRAY_LENGTH (_hb_ucd_dm2_map),
- sizeof (*_hb_ucd_dm2_map),
- _cmp_pair);
- if (likely (!v)) return false;
+ hb_codepoint_t u = 0;
- hb_codepoint_t u = HB_CODEPOINT_DECODE3_3 (*v);
- if (unlikely (!u)) return false;
+ if ((a & 0xFFFFF800u) == 0x0000u && (b & 0xFFFFFF80) == 0x0300u)
+ {
+ uint32_t k = HB_CODEPOINT_ENCODE3_11_7_14 (a, b, 0);
+ uint32_t *v = (uint32_t*) hb_bsearch (&k, _hb_ucd_dm2_u32_map,
+ ARRAY_LENGTH (_hb_ucd_dm2_u32_map),
+ sizeof (*_hb_ucd_dm2_u32_map),
+ _cmp_pair_11_7_14);
+ if (likely (!v)) return false;
+ u = HB_CODEPOINT_DECODE3_11_7_14_3 (*v);
+ }
+ else
+ {
+ uint64_t k = HB_CODEPOINT_ENCODE3 (a, b, 0);
+ uint64_t *v = (uint64_t*) hb_bsearch (&k, _hb_ucd_dm2_u64_map,
+ ARRAY_LENGTH (_hb_ucd_dm2_u64_map),
+ sizeof (*_hb_ucd_dm2_u64_map),
+ _cmp_pair);
+ if (likely (!v)) return false;
+ u = HB_CODEPOINT_DECODE3_3 (*v);
+ }
+ if (unlikely (!u)) return false;
*ab = u;
return true;
}
@@ -148,21 +170,30 @@ hb_ucd_decompose (hb_unicode_funcs_t *ufuncs HB_UNUSED,
if (likely (!i)) return false;
i--;
- if (i < ARRAY_LENGTH (_hb_ucd_dm1_u16_map) + ARRAY_LENGTH (_hb_ucd_dm1_u32_map))
+ if (i < ARRAY_LENGTH (_hb_ucd_dm1_p0_map) + ARRAY_LENGTH (_hb_ucd_dm1_p2_map))
{
- if (i < ARRAY_LENGTH (_hb_ucd_dm1_u16_map))
- *a = _hb_ucd_dm1_u16_map[i];
+ if (i < ARRAY_LENGTH (_hb_ucd_dm1_p0_map))
+ *a = _hb_ucd_dm1_p0_map[i];
else
{
- i -= ARRAY_LENGTH (_hb_ucd_dm1_u16_map);
- *a = _hb_ucd_dm1_u32_map[i];
+ i -= ARRAY_LENGTH (_hb_ucd_dm1_p0_map);
+ *a = 0x20000 | _hb_ucd_dm1_p2_map[i];
}
*b = 0;
return true;
}
- i -= ARRAY_LENGTH (_hb_ucd_dm1_u16_map) + ARRAY_LENGTH (_hb_ucd_dm1_u32_map);
+ i -= ARRAY_LENGTH (_hb_ucd_dm1_p0_map) + ARRAY_LENGTH (_hb_ucd_dm1_p2_map);
+
+ if (i < ARRAY_LENGTH (_hb_ucd_dm2_u32_map))
+ {
+ uint32_t v = _hb_ucd_dm2_u32_map[i];
+ *a = HB_CODEPOINT_DECODE3_11_7_14_1 (v);
+ *b = HB_CODEPOINT_DECODE3_11_7_14_2 (v);
+ return true;
+ }
+ i -= ARRAY_LENGTH (_hb_ucd_dm2_u32_map);
- uint64_t v = _hb_ucd_dm2_map[i];
+ uint64_t v = _hb_ucd_dm2_u64_map[i];
*a = HB_CODEPOINT_DECODE3_1 (v);
*b = HB_CODEPOINT_DECODE3_2 (v);
return true;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc
index 490b76e5b6d..0aa4a5b204b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc
@@ -38,6 +38,10 @@
using namespace OT;
+#ifdef HB_NO_OPEN
+#define hb_blob_create_from_file(x) hb_blob_get_empty ()
+#endif
+
int
main (int argc, char **argv)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-buffer-serialize.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-buffer-serialize.cc
index 28826be8d2c..6393f0b7f68 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-buffer-serialize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-buffer-serialize.cc
@@ -34,6 +34,10 @@
#include <stdio.h>
+#ifdef HB_NO_OPEN
+#define hb_blob_create_from_file(x) hb_blob_get_empty ()
+#endif
+
int
main (int argc, char **argv)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-gpos-size-params.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-gpos-size-params.cc
index 12eec618838..ad10ed40d4a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-gpos-size-params.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-gpos-size-params.cc
@@ -31,6 +31,10 @@
#include <stdio.h>
+#ifdef HB_NO_OPEN
+#define hb_blob_create_from_file(x) hb_blob_get_empty ()
+#endif
+
int
main (int argc, char **argv)
{
@@ -45,10 +49,15 @@ main (int argc, char **argv)
hb_blob_destroy (blob);
blob = nullptr;
- unsigned int p[5];
- bool ret = hb_ot_layout_get_size_params (face, p, p+1, (p+2), p+3, p+4);
+ bool ret = true;
+#ifndef HB_NO_LAYOUT_FEATURE_PARAMS
+ unsigned int p[5];
+ ret = hb_ot_layout_get_size_params (face, p, p+1, (p+2), p+3, p+4);
printf ("%g %u %u %g %g\n", p[0]/10., p[1], p[2], p[3]/10., p[4]/10.);
+#endif
+
+ hb_face_destroy (face);
return !ret;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-gsub-would-substitute.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-gsub-would-substitute.cc
index 268f7db9805..7ad9e084cb6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-gsub-would-substitute.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-gsub-would-substitute.cc
@@ -35,6 +35,10 @@
#include "hb-ft.h"
#endif
+#ifdef HB_NO_OPEN
+#define hb_blob_create_from_file(x) hb_blob_get_empty ()
+#endif
+
int
main (int argc, char **argv)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-color.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-color.cc
index 44bd2eb6988..3b4c8b6c266 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-color.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-color.cc
@@ -25,7 +25,13 @@
#include "hb.hh"
-#ifndef HB_NO_COLOR
+#include <cairo.h>
+
+#ifdef HB_NO_OPEN
+#define hb_blob_create_from_file(x) hb_blob_get_empty ()
+#endif
+
+#if !defined(HB_NO_COLOR) && defined(CAIRO_HAS_SVG_SURFACE)
#include "hb-ot.h"
@@ -35,7 +41,6 @@
#include FT_FREETYPE_H
#include FT_GLYPH_H
-#include <cairo.h>
#include <cairo-ft.h>
#include <cairo-svg.h>
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-name.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-name.cc
index 44c2c179c85..4a484c6d662 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-name.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-ot-name.cc
@@ -30,6 +30,10 @@
#include <stdlib.h>
#include <stdio.h>
+#ifdef HB_NO_OPEN
+#define hb_blob_create_from_file(x) hb_blob_get_empty ()
+#endif
+
int
main (int argc, char **argv)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/test.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/test.cc
index f0eace8c435..65b469feb7b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/test.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/test.cc
@@ -34,6 +34,10 @@
#include "hb-ft.h"
#endif
+#ifdef HB_NO_OPEN
+#define hb_blob_create_from_file(x) hb_blob_get_empty ()
+#endif
+
int
main (int argc, char **argv)
{
diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac
index 724bba10822..3caeeed1819 100644
--- a/Build/source/libs/harfbuzz/version.ac
+++ b/Build/source/libs/harfbuzz/version.ac
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [2.5.2])
+m4_define([harfbuzz_version], [2.5.3])