diff options
| author | Sam Varshavchik | 2020-07-03 16:50:10 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2020-07-12 15:56:45 -0400 |
| commit | 195a98e0dfef34d997a5bca76fac3a81e3ad67bc (patch) | |
| tree | 79427212117d640814a42f0f94a62412593aff86 | |
| parent | 0c23605497ed7b423169e07c53321877ddf6614b (diff) | |
| download | courier-libs-195a98e0dfef34d997a5bca76fac3a81e3ad67bc.tar.bz2 | |
Unicode 13 update.
| -rw-r--r-- | unicode/.gitignore | 1 | ||||
| -rw-r--r-- | unicode/ChangeLog | 8 | ||||
| -rw-r--r-- | unicode/Makefile.am | 46 | ||||
| -rw-r--r-- | unicode/courier-unicode-script-tab.h | 27 | ||||
| -rw-r--r-- | unicode/courier-unicode.h.in | 83 | ||||
| -rw-r--r-- | unicode/eastasianwidth.h | 2263 | ||||
| -rw-r--r-- | unicode/emojitab.h | 1211 | ||||
| -rw-r--r-- | unicode/graphemebreaktab.h | 7438 | ||||
| -rw-r--r-- | unicode/graphemetest.c | 14 | ||||
| -rw-r--r-- | unicode/linebreaktab.h | 7166 | ||||
| -rw-r--r-- | unicode/linebreaktab_internal.h | 3 | ||||
| -rw-r--r-- | unicode/linebreaktest.C | 1 | ||||
| -rw-r--r-- | unicode/mkeastasianwidth.pl | 90 | ||||
| -rw-r--r-- | unicode/mkemojidata.pl | 51 | ||||
| -rw-r--r-- | unicode/mklinebreak.pl | 2 | ||||
| -rw-r--r-- | unicode/scriptstab.h | 7122 | ||||
| -rw-r--r-- | unicode/unicode_emoji.c | 90 | ||||
| -rw-r--r-- | unicode/unicode_graphemebreak.c | 76 | ||||
| -rw-r--r-- | unicode/unicode_linebreak.c | 516 | ||||
| -rw-r--r-- | unicode/unicode_ultcasetab.c | 1348 | ||||
| -rw-r--r-- | unicode/unicode_wcwidth.c | 22 | ||||
| -rw-r--r-- | unicode/unicode_wordbreak.c | 529 | ||||
| -rw-r--r-- | unicode/wordbreaktab.h | 7472 | ||||
| -rw-r--r-- | unicode/wordbreaktab_internal.h | 4 | ||||
| -rw-r--r-- | unicode/wordbreaktest.C | 16 |
25 files changed, 20533 insertions, 15066 deletions
diff --git a/unicode/.gitignore b/unicode/.gitignore index 321acf4..d16876a 100644 --- a/unicode/.gitignore +++ b/unicode/.gitignore @@ -12,6 +12,7 @@ /Unihan.zip /WordBreakProperty.txt /WordBreakTest.txt +/emoji-data.txt /config.cache /config.guess /config.sub diff --git a/unicode/ChangeLog b/unicode/ChangeLog index 43cfa1e..276da6b 100644 --- a/unicode/ChangeLog +++ b/unicode/ChangeLog @@ -1,3 +1,11 @@ +2020-07-04 Sam Varshavchik <mrsam@courier-mta.com> + + * Unicode 13 update. Adds lookup of EastAsianWidth property, emoji + property lookup, adds an alternative sequence-based grapheme API + that handles multi-character emoji rules. + +2.1 + 2020-04-21 Sam Varshavchik <mrsam@courier-mta.com> * Add AC_PROG_CC_C99 to configure diff --git a/unicode/Makefile.am b/unicode/Makefile.am index 52d12df..703cf64 100644 --- a/unicode/Makefile.am +++ b/unicode/Makefile.am @@ -9,6 +9,7 @@ AM_CXXFLAGS= @COURIER_UNICODE_CXXFLAGS@ noinst_SCRIPTS=update.sh \ mkultcase.pl unicodefilter.pl \ mkeastasianwidth.pl \ + mkemojidata.pl \ mkgraphemebreak.pl mklinebreak.pl mkwordbreak.pl mkcommon.pm \ mkhtmlent.pl @@ -22,6 +23,7 @@ update-www: @$(MAKE) update-www-unicode @$(MAKE) update-www-eastasia @$(MAKE) update-www-grapheme + @$(MAKE) update-www-emojidata @$(MAKE) update-www-linebreak @$(MAKE) update-www-wordbreak @$(MAKE) update-www-scripts @@ -38,6 +40,9 @@ update-www-eastasia: update-www-grapheme: @SHELL@ $(srcdir)/update.sh GraphemeBreakProperty.txt http://www.unicode.org/Public/UNIDATA/auxiliary/GraphemeBreakProperty.txt +update-www-emojidata: + @SHELL@ $(srcdir)/update.sh emoji-data.txt https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt + update-www-linebreak: @SHELL@ $(srcdir)/update.sh LineBreak.txt http://www.unicode.org/Public/UNIDATA/LineBreak.txt @SHELL@ $(srcdir)/update.sh LineBreakTest.txt http://www.unicode.org/Public/UNIDATA/auxiliary/LineBreakTest.txt @@ -78,6 +83,7 @@ libcourier_unicode_la_SOURCES=\ unicode_htmlent.c unicode_htmlent.h \ linebreaktab_internal.h \ unicode_wordbreak.c wordbreaktab.h scriptstab.h \ + unicode_emoji.c emojitab.h \ wordbreaktab_internal.h \ unicode_scripts.c \ categoriestab.h \ @@ -91,34 +97,48 @@ EXTRA_DIST=$(noinst_SCRIPTS) $(man_MANS) $(PACKAGE).spec \ if UPDATE_UNICODE +BUILT_SOURCES=unicode_ultcasetab.c \ + eastasianwidth.h \ + graphemebreaktab.h \ + linebreaktab.h \ + wordbreaktab.h \ + emojitab.h \ + scriptstab.h \ + categoriestab.h \ + unicode_htmlent.h + unicode_ultcasetab.c: UnicodeData.txt mkultcase.pl - @PERL@ $(srcdir)/mkultcase.pl >unicode_ultcasetab.c + @PERL@ -I$(srcdir) $(srcdir)/mkultcase.pl >unicode_ultcasetab.c eastasianwidth.h: EastAsianWidth.txt mkeastasianwidth.pl - @PERL@ $(srcdir)/mkeastasianwidth.pl >eastasianwidth.h + @PERL@ -I$(srcdir) $(srcdir)/mkeastasianwidth.pl >eastasianwidth.h graphemebreaktab.h: GraphemeBreakProperty.txt mkgraphemebreak.pl mkcommon.pm - @PERL@ $(srcdir)/mkgraphemebreak.pl >graphemebreaktab.h.tmp + @PERL@ -I$(srcdir) $(srcdir)/mkgraphemebreak.pl >graphemebreaktab.h.tmp mv graphemebreaktab.h.tmp graphemebreaktab.h linebreaktab.h: LineBreak.txt UnicodeData.txt mklinebreak.pl mkcommon.pm - @PERL@ $(srcdir)/mklinebreak.pl >linebreaktab.h.tmp + @PERL@ -I$(srcdir) $(srcdir)/mklinebreak.pl >linebreaktab.h.tmp mv linebreaktab.h.tmp linebreaktab.h wordbreaktab.h: WordBreakProperty.txt mkwordbreak.pl mkcommon.pm - @PERL@ $(srcdir)/mkwordbreak.pl >wordbreaktab.h.tmp + @PERL@ -I$(srcdir) $(srcdir)/mkwordbreak.pl >wordbreaktab.h.tmp mv wordbreaktab.h.tmp wordbreaktab.h +emojitab.h: emoji-data.txt mkemojidata.pl + @PERL@ -I$(srcdir) $(srcdir)/mkemojidata.pl >emojitab.h.tmp + mv emojitab.h.tmp emojitab.h + scriptstab.h: Scripts.txt mkscripts.pl mkcommon.pm - @PERL@ $(srcdir)/mkscripts.pl >scriptstab.h.tmp + @PERL@ -I$(srcdir) $(srcdir)/mkscripts.pl >scriptstab.h.tmp mv scriptstab.h.tmp scriptstab.h categoriestab.h: Categories.txt mkcategories.pl mkcommon.pm - @PERL@ $(srcdir)/mkcategories.pl >categoriestab.h.tmp + @PERL@ -I$(srcdir) $(srcdir)/mkcategories.pl >categoriestab.h.tmp mv categoriestab.h.tmp categoriestab.h unicode_htmlent.h: xhtml-lat1.ent xhtml-special.ent xhtml-symbol.ent mkhtmlent.pl - @PERL@ $(srcdir)/mkhtmlent.pl >unicode_htmlent.h.tmp + @PERL@ -I$(srcdir) $(srcdir)/mkhtmlent.pl >unicode_htmlent.h.tmp mv unicode_htmlent.h.tmp unicode_htmlent.h endif @@ -211,10 +231,12 @@ check-am: unicodetest test "`./graphemetest 0x0041 0x036F`" = "0" # GB9 test "`./graphemetest 0x0041 0x0903`" = "0" # GB9a test "`./graphemetest 0x0041 0xAABB`" = "1" - test "`./graphemetest 0x036F 0x0041`" = "1" + test "`./graphemetest 0x036F 0x0041`" = "0" test "`./graphemetest 0x0903 0x0041`" = "1" - exit 0; test "`./graphemetest 0xAABB 0x0041`" = "0" # GB9b N/A - test "`./graphemetest 0x0041 0x0041`" = "1" + test "`./graphemetest 0x0600 0x0041`" = "0" # GB9b + test "`./graphemetest 0x1F1E6 0x1f1FF`" = "0" # GB12, GB31 + test "`./graphemetest 0x1F1E6 0x1F1E7 0x1f1FF`" = "1" # GB12, GB31 + test "`./graphemetest 0x0041 0x0041`" = "1" # GB999 if HAVE_DOCS @@ -295,7 +317,7 @@ dorpm: bump.rpm.release: $(PACKAGE).spec VERSION="x"; \ test -f $(srcdir)/rpm.release && . $(srcdir)/rpm.release; \ - NEXT_RELEASE=0; \ + NEXT_RELEASE=100; \ test "$$VERSION" = "@VERSION@" && NEXT_RELEASE="$$RELEASE"; \ RELEASE=`expr $$NEXT_RELEASE + 1`; \ echo "VERSION=@VERSION@" >$(srcdir)/rpm.release; \ diff --git a/unicode/courier-unicode-script-tab.h b/unicode/courier-unicode-script-tab.h index c22eef0..6df1efd 100644 --- a/unicode/courier-unicode-script-tab.h +++ b/unicode/courier-unicode-script-tab.h @@ -129,4 +129,29 @@ unicode_script_hatran, unicode_script_multani, unicode_script_old_hungarian, - unicode_script_signwriting + unicode_script_signwriting, + unicode_script_adlam, + unicode_script_bhaiksuki, + unicode_script_marchen, + unicode_script_newa, + unicode_script_osage, + unicode_script_tangut, + unicode_script_masaram_gondi, + unicode_script_nushu, + unicode_script_soyombo, + unicode_script_zanabazar_square, + unicode_script_dogra, + unicode_script_gunjala_gondi, + unicode_script_makasar, + unicode_script_medefaidrin, + unicode_script_hanifi_rohingya, + unicode_script_sogdian, + unicode_script_old_sogdian, + unicode_script_elymaic, + unicode_script_nandinagari, + unicode_script_nyiakeng_puachue_hmong, + unicode_script_wancho, + unicode_script_chorasmian, + unicode_script_dives_akuru, + unicode_script_khitan_small_script, + unicode_script_yezidi diff --git a/unicode/courier-unicode.h.in b/unicode/courier-unicode.h.in index 085f085..4bcd935 100644 --- a/unicode/courier-unicode.h.in +++ b/unicode/courier-unicode.h.in @@ -75,6 +75,24 @@ extern char32_t unicode_tc(char32_t); char32_t unicode_html40ent_lookup(const char *n); /* +** East Asian Width lookup. +** +** unicode_eastasia looks up the EastAsianWidth property for the given +** Unicode character. +*/ + +#define UNICODE_EASTASIA_A 'A' /* Ambiguous */ +#define UNICODE_EASTASIA_F 'F' /* Full width */ +#define UNICODE_EASTASIA_H 'H' /* Half width */ +#define UNICODE_EASTASIA_N '/' /* Unassigned */ +#define UNICODE_EASTASIA_Na 'N' /* Narrow */ +#define UNICODE_EASTASIA_W 'W' /* Wide */ + +typedef char unicode_eastasia_t; + +unicode_eastasia_t unicode_eastasia(char32_t); + +/* ** ** Return "width" of unicode character. ** @@ -181,15 +199,66 @@ extern int unicode_islower(char32_t ch); extern int unicode_isupper(char32_t ch); /* +** Implementation of Unicode emoji classification, as per +** http://www.unicode.org/reports/tr51/tr51-18.html +** +** Given a char32_t, returns the character's emoji value, which is a bitmask: +** +*/ + +#define UNICODE_EMOJI_NONE 0 +#define UNICODE_EMOJI 1 +#define UNICODE_EMOJI_PRESENTATION 2 +#define UNICODE_EMOJI_MODIFIER 4 +#define UNICODE_EMOJI_MODIFIER_BASE 8 +#define UNICODE_EMOJI_COMPONENT 16 +#define UNICODE_EMOJI_EXTENDED_PICTOGRAPHIC 32 + +typedef unsigned char unicode_emoji_t; + +extern unicode_emoji_t unicode_emoji_lookup(char32_t); + +/* Look up just one of the properties, returns non-0 if the char has it */ + +extern int unicode_emoji(char32_t); +extern int unicode_emoji_presentation(char32_t); +extern int unicode_emoji_modifier(char32_t); +extern int unicode_emoji_modifier_base(char32_t); +extern int unicode_emoji_component(char32_t); +extern int unicode_emoji_extended_pictographic(char32_t); + +/* ** Implementation of grapheme cluster boundary rules, as per -** http://www.unicode.org/reports/tr29/tr29-27.html +** http://www.unicode.org/reports/tr29/tr29-37.html ** including GB9a and GB9b. ** -** Returns non-zero if there's a grapheme break between the two referenced -** characters. +** unicode_grapheme_break_init() allocates an opaque +** unicode_grapheme_break_info_t handle, and +** unicode_grapheme_break_destroy() destroys it. +** +** Passing the handle to unicode_grapheme_break_next() returns non-0 if +** there's a grapheme break before the given character (and after the +** character that got passed in the previous call). +** +** The first call to unicode_grapheme_break_next() returns 1, as per GB1. +** +** unicode_grapheme_break() is a simplified interface that returns non-0 +** if there is a grapheme break between the two characters. This simplified +** interface is equivalent to calling unicode_grapheme_break_init(), +** followed by two calls to unicode_grapheme_break_next(), and finally +** unicode_grapheme_break_deinit(), and returns the result of the second +** call to unicode_grapheme_break_next(). */ -int unicode_grapheme_break(char32_t a, char32_t b); +struct unicode_grapheme_break_info_s; + +typedef struct unicode_grapheme_break_info_s *unicode_grapheme_break_info_t; + +extern unicode_grapheme_break_info_t unicode_grapheme_break_init(); +extern int unicode_grapheme_break_next(unicode_grapheme_break_info_t, char32_t); +extern void unicode_grapheme_break_deinit(unicode_grapheme_break_info_t); + +extern int unicode_grapheme_break(char32_t a, char32_t b); typedef enum { @@ -199,14 +268,14 @@ typedef enum { /* ** Look up the unicode script property, as per -** http://www.unicode.org/reports/tr24/tr24-24.html +** http://www.unicode.org/reports/tr24/tr24-31.html */ unicode_script_t unicode_script(char32_t a); /* ** Implementation of line break rules, as per -** http://www.unicode.org/reports/tr14/tr14-35.html +** http://www.unicode.org/reports/tr14/tr14-45.html ** ** Invoke unicode_lb_init() to initialize the linebreaking algorithm. The ** first parameter is a callback function that gets invoked with two @@ -365,7 +434,7 @@ extern void unicode_lbc_set_opts(unicode_lbc_info_t i, int opts); /* ** Implemention of word break rules, as per -** http://www.unicode.org/reports/tr29/tr29-27.html +** http://www.unicode.org/reports/tr29/tr29-37.html ** ** Invoke unicode_wb_init() to initialize the wordbreaking algorithm. The ** first parameter is a callback function that gets invoked with two diff --git a/unicode/eastasianwidth.h b/unicode/eastasianwidth.h index 456b04b..943fc2b 100644 --- a/unicode/eastasianwidth.h +++ b/unicode/eastasianwidth.h @@ -1,37 +1,2280 @@ -static const char32_t unicode_wcwidth_tab[][2]={ +static const char32_t unicode_eastasia_tab[][2]={ +{0x0000, 0x001f}, +{0x0020, 0x007e}, +{0x007f, 0x00a0}, +{0x00a1, 0x00a1}, +{0x00a2, 0x00a3}, +{0x00a4, 0x00a4}, +{0x00a5, 0x00a6}, +{0x00a7, 0x00a8}, +{0x00a9, 0x00a9}, +{0x00aa, 0x00aa}, +{0x00ab, 0x00ab}, +{0x00ac, 0x00ac}, +{0x00ad, 0x00ae}, +{0x00af, 0x00af}, +{0x00b0, 0x00b4}, +{0x00b5, 0x00b5}, +{0x00b6, 0x00ba}, +{0x00bb, 0x00bb}, +{0x00bc, 0x00bf}, +{0x00c0, 0x00c5}, +{0x00c6, 0x00c6}, +{0x00c7, 0x00cf}, +{0x00d0, 0x00d0}, +{0x00d1, 0x00d6}, +{0x00d7, 0x00d8}, +{0x00d9, 0x00dd}, +{0x00de, 0x00e1}, +{0x00e2, 0x00e5}, +{0x00e6, 0x00e6}, +{0x00e7, 0x00e7}, +{0x00e8, 0x00ea}, +{0x00eb, 0x00eb}, +{0x00ec, 0x00ed}, +{0x00ee, 0x00ef}, +{0x00f0, 0x00f0}, +{0x00f1, 0x00f1}, +{0x00f2, 0x00f3}, +{0x00f4, 0x00f6}, +{0x00f7, 0x00fa}, +{0x00fb, 0x00fb}, +{0x00fc, 0x00fc}, +{0x00fd, 0x00fd}, +{0x00fe, 0x00fe}, +{0x00ff, 0x0100}, +{0x0101, 0x0101}, +{0x0102, 0x0110}, +{0x0111, 0x0111}, +{0x0112, 0x0112}, +{0x0113, 0x0113}, +{0x0114, 0x011a}, +{0x011b, 0x011b}, +{0x011c, 0x0125}, +{0x0126, 0x0127}, +{0x0128, 0x012a}, +{0x012b, 0x012b}, +{0x012c, 0x0130}, +{0x0131, 0x0133}, +{0x0134, 0x0137}, +{0x0138, 0x0138}, +{0x0139, 0x013e}, +{0x013f, 0x0142}, +{0x0143, 0x0143}, +{0x0144, 0x0144}, +{0x0145, 0x0147}, +{0x0148, 0x014b}, +{0x014c, 0x014c}, +{0x014d, 0x014d}, +{0x014e, 0x0151}, +{0x0152, 0x0153}, +{0x0154, 0x0165}, +{0x0166, 0x0167}, +{0x0168, 0x016a}, +{0x016b, 0x016b}, +{0x016c, 0x01cd}, +{0x01ce, 0x01ce}, +{0x01cf, 0x01cf}, +{0x01d0, 0x01d0}, +{0x01d1, 0x01d1}, +{0x01d2, 0x01d2}, +{0x01d3, 0x01d3}, +{0x01d4, 0x01d4}, +{0x01d5, 0x01d5}, +{0x01d6, 0x01d6}, +{0x01d7, 0x01d7}, +{0x01d8, 0x01d8}, +{0x01d9, 0x01d9}, +{0x01da, 0x01da}, +{0x01db, 0x01db}, +{0x01dc, 0x01dc}, +{0x01dd, 0x0250}, +{0x0251, 0x0251}, +{0x0252, 0x0260}, +{0x0261, 0x0261}, +{0x0262, 0x02c3}, +{0x02c4, 0x02c4}, +{0x02c5, 0x02c6}, +{0x02c7, 0x02c7}, +{0x02c8, 0x02c8}, +{0x02c9, 0x02cb}, +{0x02cc, 0x02cc}, +{0x02cd, 0x02cd}, +{0x02ce, 0x02cf}, +{0x02d0, 0x02d0}, +{0x02d1, 0x02d7}, +{0x02d8, 0x02db}, +{0x02dc, 0x02dc}, +{0x02dd, 0x02dd}, +{0x02de, 0x02de}, +{0x02df, 0x02df}, +{0x02e0, 0x02ff}, +{0x0300, 0x036f}, +{0x0370, 0x0377}, +{0x037a, 0x037f}, +{0x0384, 0x038a}, +{0x038c, 0x038c}, +{0x038e, 0x0390}, +{0x0391, 0x03a1}, +{0x03a3, 0x03a9}, +{0x03aa, 0x03b0}, +{0x03b1, 0x03c1}, +{0x03c2, 0x03c2}, +{0x03c3, 0x03c9}, +{0x03ca, 0x0400}, +{0x0401, 0x0401}, +{0x0402, 0x040f}, +{0x0410, 0x044f}, +{0x0450, 0x0450}, +{0x0451, 0x0451}, +{0x0452, 0x052f}, +{0x0531, 0x0556}, +{0x0559, 0x058a}, +{0x058d, 0x058f}, +{0x0591, 0x05c7}, +{0x05d0, 0x05ea}, +{0x05ef, 0x05f4}, +{0x0600, 0x061c}, +{0x061e, 0x070d}, +{0x070f, 0x074a}, +{0x074d, 0x07b1}, +{0x07c0, 0x07fa}, +{0x07fd, 0x082d}, +{0x0830, 0x083e}, +{0x0840, 0x085b}, +{0x085e, 0x085e}, +{0x0860, 0x086a}, +{0x08a0, 0x08b4}, +{0x08b6, 0x08c7}, +{0x08d3, 0x0983}, +{0x0985, 0x098c}, +{0x098f, 0x0990}, +{0x0993, 0x09a8}, +{0x09aa, 0x09b0}, +{0x09b2, 0x09b2}, +{0x09b6, 0x09b9}, +{0x09bc, 0x09c4}, +{0x09c7, 0x09c8}, +{0x09cb, 0x09ce}, +{0x09d7, 0x09d7}, +{0x09dc, 0x09dd}, +{0x09df, 0x09e3}, +{0x09e6, 0x09fe}, +{0x0a01, 0x0a03}, +{0x0a05, 0x0a0a}, +{0x0a0f, 0x0a10}, +{0x0a13, 0x0a28}, +{0x0a2a, 0x0a30}, +{0x0a32, 0x0a33}, +{0x0a35, 0x0a36}, +{0x0a38, 0x0a39}, +{0x0a3c, 0x0a3c}, +{0x0a3e, 0x0a42}, +{0x0a47, 0x0a48}, +{0x0a4b, 0x0a4d}, +{0x0a51, 0x0a51}, +{0x0a59, 0x0a5c}, +{0x0a5e, 0x0a5e}, +{0x0a66, 0x0a76}, +{0x0a81, 0x0a83}, +{0x0a85, 0x0a8d}, +{0x0a8f, 0x0a91}, +{0x0a93, 0x0aa8}, +{0x0aaa, 0x0ab0}, +{0x0ab2, 0x0ab3}, +{0x0ab5, 0x0ab9}, +{0x0abc, 0x0ac5}, +{0x0ac7, 0x0ac9}, +{0x0acb, 0x0acd}, +{0x0ad0, 0x0ad0}, +{0x0ae0, 0x0ae3}, +{0x0ae6, 0x0af1}, +{0x0af9, 0x0aff}, +{0x0b01, 0x0b03}, +{0x0b05, 0x0b0c}, +{0x0b0f, 0x0b10}, +{0x0b13, 0x0b28}, +{0x0b2a, 0x0b30}, +{0x0b32, 0x0b33}, +{0x0b35, 0x0b39}, +{0x0b3c, 0x0b44}, +{0x0b47, 0x0b48}, +{0x0b4b, 0x0b4d}, +{0x0b55, 0x0b57}, +{0x0b5c, 0x0b5d}, +{0x0b5f, 0x0b63}, +{0x0b66, 0x0b77}, +{0x0b82, 0x0b83}, +{0x0b85, 0x0b8a}, +{0x0b8e, 0x0b90}, +{0x0b92, 0x0b95}, +{0x0b99, 0x0b9a}, +{0x0b9c, 0x0b9c}, +{0x0b9e, 0x0b9f}, +{0x0ba3, 0x0ba4}, +{0x0ba8, 0x0baa}, +{0x0bae, 0x0bb9}, +{0x0bbe, 0x0bc2}, +{0x0bc6, 0x0bc8}, +{0x0bca, 0x0bcd}, +{0x0bd0, 0x0bd0}, +{0x0bd7, 0x0bd7}, +{0x0be6, 0x0bfa}, +{0x0c00, 0x0c0c}, +{0x0c0e, 0x0c10}, +{0x0c12, 0x0c28}, +{0x0c2a, 0x0c39}, +{0x0c3d, 0x0c44}, +{0x0c46, 0x0c48}, +{0x0c4a, 0x0c4d}, +{0x0c55, 0x0c56}, +{0x0c58, 0x0c5a}, +{0x0c60, 0x0c63}, +{0x0c66, 0x0c6f}, +{0x0c77, 0x0c8c}, +{0x0c8e, 0x0c90}, +{0x0c92, 0x0ca8}, +{0x0caa, 0x0cb3}, +{0x0cb5, 0x0cb9}, +{0x0cbc, 0x0cc4}, +{0x0cc6, 0x0cc8}, +{0x0cca, 0x0ccd}, +{0x0cd5, 0x0cd6}, +{0x0cde, 0x0cde}, +{0x0ce0, 0x0ce3}, +{0x0ce6, 0x0cef}, +{0x0cf1, 0x0cf2}, +{0x0d00, 0x0d0c}, +{0x0d0e, 0x0d10}, +{0x0d12, 0x0d44}, +{0x0d46, 0x0d48}, +{0x0d4a, 0x0d4f}, +{0x0d54, 0x0d63}, +{0x0d66, 0x0d7f}, +{0x0d81, 0x0d83}, +{0x0d85, 0x0d96}, +{0x0d9a, 0x0db1}, +{0x0db3, 0x0dbb}, +{0x0dbd, 0x0dbd}, +{0x0dc0, 0x0dc6}, +{0x0dca, 0x0dca}, +{0x0dcf, 0x0dd4}, +{0x0dd6, 0x0dd6}, +{0x0dd8, 0x0ddf}, +{0x0de6, 0x0def}, +{0x0df2, 0x0df4}, +{0x0e01, 0x0e3a}, +{0x0e3f, 0x0e5b}, +{0x0e81, 0x0e82}, +{0x0e84, 0x0e84}, +{0x0e86, 0x0e8a}, +{0x0e8c, 0x0ea3}, +{0x0ea5, 0x0ea5}, +{0x0ea7, 0x0ebd}, +{0x0ec0, 0x0ec4}, +{0x0ec6, 0x0ec6}, +{0x0ec8, 0x0ecd}, +{0x0ed0, 0x0ed9}, +{0x0edc, 0x0edf}, +{0x0f00, 0x0f47}, +{0x0f49, 0x0f6c}, +{0x0f71, 0x0f97}, +{0x0f99, 0x0fbc}, +{0x0fbe, 0x0fcc}, +{0x0fce, 0x0fda}, +{0x1000, 0x10c5}, +{0x10c7, 0x10c7}, +{0x10cd, 0x10cd}, +{0x10d0, 0x10ff}, {0x1100, 0x115f}, +{0x1160, 0x1248}, +{0x124a, 0x124d}, +{0x1250, 0x1256}, +{0x1258, 0x1258}, +{0x125a, 0x125d}, +{0x1260, 0x1288}, +{0x128a, 0x128d}, +{0x1290, 0x12b0}, +{0x12b2, 0x12b5}, +{0x12b8, 0x12be}, +{0x12c0, 0x12c0}, +{0x12c2, 0x12c5}, +{0x12c8, 0x12d6}, +{0x12d8, 0x1310}, +{0x1312, 0x1315}, +{0x1318, 0x135a}, +{0x135d, 0x137c}, +{0x1380, 0x1399}, +{0x13a0, 0x13f5}, +{0x13f8, 0x13fd}, +{0x1400, 0x169c}, +{0x16a0, 0x16f8}, +{0x1700, 0x170c}, +{0x170e, 0x1714}, +{0x1720, 0x1736}, +{0x1740, 0x1753}, +{0x1760, 0x176c}, +{0x176e, 0x1770}, +{0x1772, 0x1773}, +{0x1780, 0x17dd}, +{0x17e0, 0x17e9}, +{0x17f0, 0x17f9}, +{0x1800, 0x180e}, +{0x1810, 0x1819}, +{0x1820, 0x1878}, +{0x1880, 0x18aa}, +{0x18b0, 0x18f5}, +{0x1900, 0x191e}, +{0x1920, 0x192b}, +{0x1930, 0x193b}, +{0x1940, 0x1940}, +{0x1944, 0x196d}, +{0x1970, 0x1974}, +{0x1980, 0x19ab}, +{0x19b0, 0x19c9}, +{0x19d0, 0x19da}, +{0x19de, 0x1a1b}, +{0x1a1e, 0x1a5e}, +{0x1a60, 0x1a7c}, +{0x1a7f, 0x1a89}, +{0x1a90, 0x1a99}, +{0x1aa0, 0x1aad}, +{0x1ab0, 0x1ac0}, +{0x1b00, 0x1b4b}, +{0x1b50, 0x1b7c}, +{0x1b80, 0x1bf3}, +{0x1bfc, 0x1c37}, +{0x1c3b, 0x1c49}, +{0x1c4d, 0x1c88}, +{0x1c90, 0x1cba}, +{0x1cbd, 0x1cc7}, +{0x1cd0, 0x1cfa}, +{0x1d00, 0x1df9}, +{0x1dfb, 0x1f15}, +{0x1f18, 0x1f1d}, +{0x1f20, 0x1f45}, +{0x1f48, 0x1f4d}, +{0x1f50, 0x1f57}, +{0x1f59, 0x1f59}, +{0x1f5b, 0x1f5b}, +{0x1f5d, 0x1f5d}, +{0x1f5f, 0x1f7d}, +{0x1f80, 0x1fb4}, +{0x1fb6, 0x1fc4}, +{0x1fc6, 0x1fd3}, +{0x1fd6, 0x1fdb}, +{0x1fdd, 0x1fef}, +{0x1ff2, 0x1ff4}, +{0x1ff6, 0x1ffe}, +{0x2000, 0x200f}, +{0x2010, 0x2010}, +{0x2011, 0x2012}, +{0x2013, 0x2016}, +{0x2017, 0x2017}, +{0x2018, 0x2019}, +{0x201a, 0x201b}, +{0x201c, 0x201d}, +{0x201e, 0x201f}, +{0x2020, 0x2022}, +{0x2023, 0x2023}, +{0x2024, 0x2027}, +{0x2028, 0x202f}, +{0x2030, 0x2030}, +{0x2031, 0x2031}, +{0x2032, 0x2033}, +{0x2034, 0x2034}, +{0x2035, 0x2035}, +{0x2036, 0x203a}, +{0x203b, 0x203b}, +{0x203c, 0x203d}, +{0x203e, 0x203e}, +{0x203f, 0x2064}, +{0x2066, 0x2071}, +{0x2074, 0x2074}, +{0x2075, 0x207e}, +{0x207f, 0x207f}, +{0x2080, 0x2080}, +{0x2081, 0x2084}, +{0x2085, 0x208e}, +{0x2090, 0x209c}, +{0x20a0, 0x20a8}, +{0x20a9, 0x20a9}, +{0x20aa, 0x20ab}, +{0x20ac, 0x20ac}, +{0x20ad, 0x20bf}, +{0x20d0, 0x20f0}, +{0x2100, 0x2102}, +{0x2103, 0x2103}, +{0x2104, 0x2104}, +{0x2105, 0x2105}, +{0x2106, 0x2108}, +{0x2109, 0x2109}, +{0x210a, 0x2112}, +{0x2113, 0x2113}, +{0x2114, 0x2115}, +{0x2116, 0x2116}, +{0x2117, 0x2120}, +{0x2121, 0x2122}, +{0x2123, 0x2125}, +{0x2126, 0x2126}, +{0x2127, 0x212a}, +{0x212b, 0x212b}, +{0x212c, 0x2152}, +{0x2153, 0x2154}, +{0x2155, 0x215a}, +{0x215b, 0x215e}, +{0x215f, 0x215f}, +{0x2160, 0x216b}, +{0x216c, 0x216f}, +{0x2170, 0x2179}, +{0x217a, 0x2188}, +{0x2189, 0x2189}, +{0x218a, 0x218b}, +{0x2190, 0x2199}, +{0x219a, 0x21b7}, +{0x21b8, 0x21b9}, +{0x21ba, 0x21d1}, +{0x21d2, 0x21d2}, +{0x21d3, 0x21d3}, +{0x21d4, 0x21d4}, +{0x21d5, 0x21e6}, +{0x21e7, 0x21e7}, +{0x21e8, 0x21ff}, +{0x2200, 0x2200}, +{0x2201, 0x2201}, +{0x2202, 0x2203}, +{0x2204, 0x2206}, +{0x2207, 0x2208}, +{0x2209, 0x220a}, +{0x220b, 0x220b}, +{0x220c, 0x220e}, +{0x220f, 0x220f}, +{0x2210, 0x2210}, +{0x2211, 0x2211}, +{0x2212, 0x2214}, +{0x2215, 0x2215}, +{0x2216, 0x2219}, +{0x221a, 0x221a}, +{0x221b, 0x221c}, +{0x221d, 0x2220}, +{0x2221, 0x2222}, +{0x2223, 0x2223}, +{0x2224, 0x2224}, +{0x2225, 0x2225}, +{0x2226, 0x2226}, +{0x2227, 0x222c}, +{0x222d, 0x222d}, +{0x222e, 0x222e}, +{0x222f, 0x2233}, +{0x2234, 0x2237}, +{0x2238, 0x223b}, +{0x223c, 0x223d}, +{0x223e, 0x2247}, +{0x2248, 0x2248}, +{0x2249, 0x224b}, +{0x224c, 0x224c}, +{0x224d, 0x2251}, +{0x2252, 0x2252}, +{0x2253, 0x225f}, +{0x2260, 0x2261}, +{0x2262, 0x2263}, +{0x2264, 0x2267}, +{0x2268, 0x2269}, +{0x226a, 0x226b}, +{0x226c, 0x226d}, +{0x226e, 0x226f}, +{0x2270, 0x2281}, +{0x2282, 0x2283}, +{0x2284, 0x2285}, +{0x2286, 0x2287}, +{0x2288, 0x2294}, +{0x2295, 0x2295}, +{0x2296, 0x2298}, +{0x2299, 0x2299}, +{0x229a, 0x22a4}, +{0x22a5, 0x22a5}, +{0x22a6, 0x22be}, +{0x22bf, 0x22bf}, +{0x22c0, 0x2311}, +{0x2312, 0x2312}, +{0x2313, 0x2319}, +{0x231a, 0x231b}, +{0x231c, 0x2328}, {0x2329, 0x232a}, +{0x232b, 0x23e8}, +{0x23e9, 0x23ec}, +{0x23ed, 0x23ef}, +{0x23f0, 0x23f0}, +{0x23f1, 0x23f2}, +{0x23f3, 0x23f3}, +{0x23f4, 0x2426}, +{0x2440, 0x244a}, +{0x2460, 0x24e9}, +{0x24ea, 0x24ea}, +{0x24eb, 0x254b}, +{0x254c, 0x254f}, +{0x2550, 0x2573}, +{0x2574, 0x257f}, +{0x2580, 0x258f}, +{0x2590, 0x2591}, +{0x2592, 0x2595}, +{0x2596, 0x259f}, +{0x25a0, 0x25a1}, +{0x25a2, 0x25a2}, +{0x25a3, 0x25a9}, +{0x25aa, 0x25b1}, +{0x25b2, 0x25b3}, +{0x25b4, 0x25b5}, +{0x25b6, 0x25b7}, +{0x25b8, 0x25bb}, +{0x25bc, 0x25bd}, +{0x25be, 0x25bf}, +{0x25c0, 0x25c1}, +{0x25c2, 0x25c5}, +{0x25c6, 0x25c8}, +{0x25c9, 0x25ca}, +{0x25cb, 0x25cb}, +{0x25cc, 0x25cd}, +{0x25ce, 0x25d1}, +{0x25d2, 0x25e1}, +{0x25e2, 0x25e5}, +{0x25e6, 0x25ee}, +{0x25ef, 0x25ef}, +{0x25f0, 0x25fc}, +{0x25fd, 0x25fe}, +{0x25ff, 0x2604}, +{0x2605, 0x2606}, +{0x2607, 0x2608}, +{0x2609, 0x2609}, +{0x260a, 0x260d}, +{0x260e, 0x260f}, +{0x2610, 0x2613}, +{0x2614, 0x2615}, +{0x2616, 0x261b}, +{0x261c, 0x261c}, +{0x261d, 0x261d}, +{0x261e, 0x261e}, +{0x261f, 0x263f}, +{0x2640, 0x2640}, +{0x2641, 0x2641}, +{0x2642, 0x2642}, +{0x2643, 0x2647}, +{0x2648, 0x2653}, +{0x2654, 0x265f}, +{0x2660, 0x2661}, +{0x2662, 0x2662}, +{0x2663, 0x2665}, +{0x2666, 0x2666}, +{0x2667, 0x266a}, +{0x266b, 0x266b}, +{0x266c, 0x266d}, +{0x266e, 0x266e}, +{0x266f, 0x266f}, +{0x2670, 0x267e}, +{0x267f, 0x267f}, +{0x2680, 0x2692}, +{0x2693, 0x2693}, +{0x2694, 0x269d}, +{0x269e, 0x269f}, +{0x26a0, 0x26a0}, +{0x26a1, 0x26a1}, +{0x26a2, 0x26a9}, +{0x26aa, 0x26ab}, +{0x26ac, 0x26bc}, +{0x26bd, 0x26be}, +{0x26bf, 0x26bf}, +{0x26c0, 0x26c3}, +{0x26c4, 0x26c5}, +{0x26c6, 0x26cd}, +{0x26ce, 0x26ce}, +{0x26cf, 0x26d3}, +{0x26d4, 0x26d4}, +{0x26d5, 0x26e1}, +{0x26e2, 0x26e2}, +{0x26e3, 0x26e3}, +{0x26e4, 0x26e7}, +{0x26e8, 0x26e9}, +{0x26ea, 0x26ea}, +{0x26eb, 0x26f1}, +{0x26f2, 0x26f3}, +{0x26f4, 0x26f4}, +{0x26f5, 0x26f5}, +{0x26f6, 0x26f9}, +{0x26fa, 0x26fa}, +{0x26fb, 0x26fc}, +{0x26fd, 0x26fd}, +{0x26fe, 0x26ff}, +{0x2700, 0x2704}, +{0x2705, 0x2705}, +{0x2706, 0x2709}, +{0x270a, 0x270b}, +{0x270c, 0x2727}, +{0x2728, 0x2728}, +{0x2729, 0x273c}, +{0x273d, 0x273d}, +{0x273e, 0x274b}, +{0x274c, 0x274c}, +{0x274d, 0x274d}, +{0x274e, 0x274e}, +{0x274f, 0x2752}, +{0x2753, 0x2755}, +{0x2756, 0x2756}, +{0x2757, 0x2757}, +{0x2758, 0x2775}, +{0x2776, 0x277f}, +{0x2780, 0x2794}, +{0x2795, 0x2797}, +{0x2798, 0x27af}, +{0x27b0, 0x27b0}, +{0x27b1, 0x27be}, +{0x27bf, 0x27bf}, +{0x27c0, 0x27e5}, +{0x27e6, 0x27ed}, +{0x27ee, 0x2984}, +{0x2985, 0x2986}, +{0x2987, 0x2b1a}, +{0x2b1b, 0x2b1c}, +{0x2b1d, 0x2b4f}, +{0x2b50, 0x2b50}, +{0x2b51, 0x2b54}, +{0x2b55, 0x2b55}, +{0x2b56, 0x2b59}, +{0x2b5a, 0x2b73}, +{0x2b76, 0x2b95}, +{0x2b97, 0x2c2e}, +{0x2c30, 0x2c5e}, +{0x2c60, 0x2cf3}, +{0x2cf9, 0x2d25}, +{0x2d27, 0x2d27}, +{0x2d2d, 0x2d2d}, +{0x2d30, 0x2d67}, +{0x2d6f, 0x2d70}, +{0x2d7f, 0x2d96}, +{0x2da0, 0x2da6}, +{0x2da8, 0x2dae}, +{0x2db0, 0x2db6}, +{0x2db8, 0x2dbe}, +{0x2dc0, 0x2dc6}, +{0x2dc8, 0x2dce}, +{0x2dd0, 0x2dd6}, +{0x2dd8, 0x2dde}, +{0x2de0, 0x2e52}, {0x2e80, 0x2e99}, {0x2e9b, 0x2ef3}, {0x2f00, 0x2fd5}, {0x2ff0, 0x2ffb}, -{0x3000, 0x303e}, +{0x3000, 0x3000}, +{0x3001, 0x303e}, +{0x303f, 0x303f}, {0x3041, 0x3096}, {0x3099, 0x30ff}, -{0x3105, 0x312d}, +{0x3105, 0x312f}, {0x3131, 0x318e}, -{0x3190, 0x31ba}, -{0x31c0, 0x31e3}, +{0x3190, 0x31e3}, {0x31f0, 0x321e}, {0x3220, 0x3247}, -{0x3250, 0x32fe}, -{0x3300, 0x4dbf}, +{0x3248, 0x324f}, +{0x3250, 0x4dbf}, +{0x4dc0, 0x4dff}, {0x4e00, 0xa48c}, {0xa490, 0xa4c6}, +{0xa4d0, 0xa62b}, +{0xa640, 0xa6f7}, +{0xa700, 0xa7bf}, +{0xa7c2, 0xa7ca}, +{0xa7f5, 0xa82c}, +{0xa830, 0xa839}, +{0xa840, 0xa877}, +{0xa880, 0xa8c5}, +{0xa8ce, 0xa8d9}, +{0xa8e0, 0xa953}, +{0xa95f, 0xa95f}, {0xa960, 0xa97c}, +{0xa980, 0xa9cd}, +{0xa9cf, 0xa9d9}, +{0xa9de, 0xa9fe}, +{0xaa00, 0xaa36}, +{0xaa40, 0xaa4d}, +{0xaa50, 0xaa59}, +{0xaa5c, 0xaac2}, +{0xaadb, 0xaaf6}, +{0xab01, 0xab06}, +{0xab09, 0xab0e}, +{0xab11, 0xab16}, +{0xab20, 0xab26}, +{0xab28, 0xab2e}, +{0xab30, 0xab6b}, +{0xab70, 0xabed}, +{0xabf0, 0xabf9}, {0xac00, 0xd7a3}, +{0xd7b0, 0xd7c6}, +{0xd7cb, 0xd7fb}, +{0xd800, 0xdfff}, +{0xe000, 0xf8ff}, {0xf900, 0xfaff}, +{0xfb00, 0xfb06}, +{0xfb13, 0xfb17}, +{0xfb1d, 0xfb36}, +{0xfb38, 0xfb3c}, +{0xfb3e, 0xfb3e}, +{0xfb40, 0xfb41}, +{0xfb43, 0xfb44}, +{0xfb46, 0xfbc1}, +{0xfbd3, 0xfd3f}, +{0xfd50, 0xfd8f}, +{0xfd92, 0xfdc7}, +{0xfdf0, 0xfdfd}, +{0xfe00, 0xfe0f}, {0xfe10, 0xfe19}, +{0xfe20, 0xfe2f}, {0xfe30, 0xfe52}, {0xfe54, 0xfe66}, {0xfe68, 0xfe6b}, +{0xfe70, 0xfe74}, +{0xfe76, 0xfefc}, +{0xfeff, 0xfeff}, {0xff01, 0xff60}, +{0xff61, 0xffbe}, +{0xffc2, 0xffc7}, +{0xffca, 0xffcf}, +{0xffd2, 0xffd7}, +{0xffda, 0xffdc}, {0xffe0, 0xffe6}, -{0x1b000, 0x1b001}, +{0xffe8, 0xffee}, +{0xfff9, 0xfffc}, +{0xfffd, 0xfffd}, +{0x10000, 0x1000b}, +{0x1000d, 0x10026}, +{0x10028, 0x1003a}, +{0x1003c, 0x1003d}, +{0x1003f, 0x1004d}, +{0x10050, 0x1005d}, +{0x10080, 0x100fa}, +{0x10100, 0x10102}, +{0x10107, 0x10133}, +{0x10137, 0x1018e}, +{0x10190, 0x1019c}, +{0x101a0, 0x101a0}, +{0x101d0, 0x101fd}, +{0x10280, 0x1029c}, +{0x102a0, 0x102d0}, +{0x102e0, 0x102fb}, +{0x10300, 0x10323}, +{0x1032d, 0x1034a}, +{0x10350, 0x1037a}, +{0x10380, 0x1039d}, +{0x1039f, 0x103c3}, +{0x103c8, 0x103d5}, +{0x10400, 0x1049d}, +{0x104a0, 0x104a9}, +{0x104b0, 0x104d3}, +{0x104d8, 0x104fb}, +{0x10500, 0x10527}, +{0x10530, 0x10563}, +{0x1056f, 0x1056f}, +{0x10600, 0x10736}, +{0x10740, 0x10755}, +{0x10760, 0x10767}, +{0x10800, 0x10805}, +{0x10808, 0x10808}, +{0x1080a, 0x10835}, +{0x10837, 0x10838}, +{0x1083c, 0x1083c}, +{0x1083f, 0x10855}, +{0x10857, 0x1089e}, +{0x108a7, 0x108af}, +{0x108e0, 0x108f2}, +{0x108f4, 0x108f5}, +{0x108fb, 0x1091b}, +{0x1091f, 0x10939}, +{0x1093f, 0x1093f}, +{0x10980, 0x109b7}, +{0x109bc, 0x109cf}, +{0x109d2, 0x10a03}, +{0x10a05, 0x10a06}, +{0x10a0c, 0x10a13}, +{0x10a15, 0x10a17}, +{0x10a19, 0x10a35}, +{0x10a38, 0x10a3a}, +{0x10a3f, 0x10a48}, +{0x10a50, 0x10a58}, +{0x10a60, 0x10a9f}, +{0x10ac0, 0x10ae6}, +{0x10aeb, 0x10af6}, +{0x10b00, 0x10b35}, +{0x10b39, 0x10b55}, +{0x10b58, 0x10b72}, +{0x10b78, 0x10b91}, +{0x10b99, 0x10b9c}, +{0x10ba9, 0x10baf}, +{0x10c00, 0x10c48}, +{0x10c80, 0x10cb2}, +{0x10cc0, 0x10cf2}, +{0x10cfa, 0x10d27}, +{0x10d30, 0x10d39}, +{0x10e60, 0x10e7e}, +{0x10e80, 0x10ea9}, +{0x10eab, 0x10ead}, +{0x10eb0, 0x10eb1}, +{0x10f00, 0x10f27}, +{0x10f30, 0x10f59}, +{0x10fb0, 0x10fcb}, +{0x10fe0, 0x10ff6}, +{0x11000, 0x1104d}, +{0x11052, 0x1106f}, +{0x1107f, 0x110c1}, +{0x110cd, 0x110cd}, +{0x110d0, 0x110e8}, +{0x110f0, 0x110f9}, +{0x11100, 0x11134}, +{0x11136, 0x11147}, +{0x11150, 0x11176}, +{0x11180, 0x111df}, +{0x111e1, 0x111f4}, +{0x11200, 0x11211}, +{0x11213, 0x1123e}, +{0x11280, 0x11286}, +{0x11288, 0x11288}, +{0x1128a, 0x1128d}, +{0x1128f, 0x1129d}, +{0x1129f, 0x112a9}, +{0x112b0, 0x112ea}, +{0x112f0, 0x112f9}, +{0x11300, 0x11303}, +{0x11305, 0x1130c}, +{0x1130f, 0x11310}, +{0x11313, 0x11328}, +{0x1132a, 0x11330}, +{0x11332, 0x11333}, +{0x11335, 0x11339}, +{0x1133b, 0x11344}, +{0x11347, 0x11348}, +{0x1134b, 0x1134d}, +{0x11350, 0x11350}, +{0x11357, 0x11357}, +{0x1135d, 0x11363}, +{0x11366, 0x1136c}, +{0x11370, 0x11374}, +{0x11400, 0x1145b}, +{0x1145d, 0x11461}, +{0x11480, 0x114c7}, +{0x114d0, 0x114d9}, +{0x11580, 0x115b5}, +{0x115b8, 0x115dd}, +{0x11600, 0x11644}, +{0x11650, 0x11659}, +{0x11660, 0x1166c}, +{0x11680, 0x116b8}, +{0x116c0, 0x116c9}, +{0x11700, 0x1171a}, +{0x1171d, 0x1172b}, +{0x11730, 0x1173f}, +{0x11800, 0x1183b}, +{0x118a0, 0x118f2}, +{0x118ff, 0x11906}, +{0x11909, 0x11909}, +{0x1190c, 0x11913}, +{0x11915, 0x11916}, +{0x11918, 0x11935}, +{0x11937, 0x11938}, +{0x1193b, 0x11946}, +{0x11950, 0x11959}, +{0x119a0, 0x119a7}, +{0x119aa, 0x119d7}, +{0x119da, 0x119e4}, +{0x11a00, 0x11a47}, +{0x11a50, 0x11aa2}, +{0x11ac0, 0x11af8}, +{0x11c00, 0x11c08}, +{0x11c0a, 0x11c36}, +{0x11c38, 0x11c45}, +{0x11c50, 0x11c6c}, +{0x11c70, 0x11c8f}, +{0x11c92, 0x11ca7}, +{0x11ca9, 0x11cb6}, +{0x11d00, 0x11d06}, +{0x11d08, 0x11d09}, +{0x11d0b, 0x11d36}, +{0x11d3a, 0x11d3a}, +{0x11d3c, 0x11d3d}, +{0x11d3f, 0x11d47}, +{0x11d50, 0x11d59}, +{0x11d60, 0x11d65}, +{0x11d67, 0x11d68}, +{0x11d6a, 0x11d8e}, +{0x11d90, 0x11d91}, +{0x11d93, 0x11d98}, +{0x11da0, 0x11da9}, +{0x11ee0, 0x11ef8}, +{0x11fb0, 0x11fb0}, +{0x11fc0, 0x11ff1}, +{0x11fff, 0x12399}, +{0x12400, 0x1246e}, +{0x12470, 0x12474}, +{0x12480, 0x12543}, +{0x13000, 0x1342e}, +{0x13430, 0x13438}, +{0x14400, 0x14646}, +{0x16800, 0x16a38}, +{0x16a40, 0x16a5e}, +{0x16a60, 0x16a69}, +{0x16a6e, 0x16a6f}, +{0x16ad0, 0x16aed}, +{0x16af0, 0x16af5}, +{0x16b00, 0x16b45}, +{0x16b50, 0x16b59}, +{0x16b5b, 0x16b61}, +{0x16b63, 0x16b77}, +{0x16b7d, 0x16b8f}, +{0x16e40, 0x16e9a}, +{0x16f00, 0x16f4a}, +{0x16f4f, 0x16f87}, +{0x16f8f, 0x16f9f}, +{0x16fe0, 0x16fe4}, +{0x16ff0, 0x16ff1}, +{0x17000, 0x187f7}, +{0x18800, 0x18cd5}, +{0x18d00, 0x18d08}, +{0x1b000, 0x1b11e}, +{0x1b150, 0x1b152}, +{0x1b164, 0x1b167}, +{0x1b170, 0x1b2fb}, +{0x1bc00, 0x1bc6a}, +{0x1bc70, 0x1bc7c}, +{0x1bc80, 0x1bc88}, +{0x1bc90, 0x1bc99}, +{0x1bc9c, 0x1bca3}, +{0x1d000, 0x1d0f5}, +{0x1d100, 0x1d126}, +{0x1d129, 0x1d1e8}, +{0x1d200, 0x1d245}, +{0x1d2e0, 0x1d2f3}, +{0x1d300, 0x1d356}, +{0x1d360, 0x1d378}, +{0x1d400, 0x1d454}, +{0x1d456, 0x1d49c}, +{0x1d49e, 0x1d49f}, +{0x1d4a2, 0x1d4a2}, +{0x1d4a5, 0x1d4a6}, +{0x1d4a9, 0x1d4ac}, +{0x1d4ae, 0x1d4b9}, +{0x1d4bb, 0x1d4bb}, +{0x1d4bd, 0x1d4c3}, +{0x1d4c5, 0x1d505}, +{0x1d507, 0x1d50a}, +{0x1d50d, 0x1d514}, +{0x1d516, 0x1d51c}, +{0x1d51e, 0x1d539}, +{0x1d53b, 0x1d53e}, +{0x1d540, 0x1d544}, +{0x1d546, 0x1d546}, +{0x1d54a, 0x1d550}, +{0x1d552, 0x1d6a5}, +{0x1d6a8, 0x1d7cb}, +{0x1d7ce, 0x1da8b}, +{0x1da9b, 0x1da9f}, +{0x1daa1, 0x1daaf}, +{0x1e000, 0x1e006}, +{0x1e008, 0x1e018}, +{0x1e01b, 0x1e021}, +{0x1e023, 0x1e024}, +{0x1e026, 0x1e02a}, +{0x1e100, 0x1e12c}, +{0x1e130, 0x1e13d}, +{0x1e140, 0x1e149}, +{0x1e14e, 0x1e14f}, +{0x1e2c0, 0x1e2f9}, +{0x1e2ff, 0x1e2ff}, +{0x1e800, 0x1e8c4}, +{0x1e8c7, 0x1e8d6}, +{0x1e900, 0x1e94b}, +{0x1e950, 0x1e959}, +{0x1e95e, 0x1e95f}, +{0x1ec71, 0x1ecb4}, +{0x1ed01, 0x1ed3d}, +{0x1ee00, 0x1ee03}, +{0x1ee05, 0x1ee1f}, +{0x1ee21, 0x1ee22}, +{0x1ee24, 0x1ee24}, +{0x1ee27, 0x1ee27}, +{0x1ee29, 0x1ee32}, +{0x1ee34, 0x1ee37}, +{0x1ee39, 0x1ee39}, +{0x1ee3b, 0x1ee3b}, +{0x1ee42, 0x1ee42}, +{0x1ee47, 0x1ee47}, +{0x1ee49, 0x1ee49}, +{0x1ee4b, 0x1ee4b}, +{0x1ee4d, 0x1ee4f}, +{0x1ee51, 0x1ee52}, +{0x1ee54, 0x1ee54}, +{0x1ee57, 0x1ee57}, +{0x1ee59, 0x1ee59}, +{0x1ee5b, 0x1ee5b}, +{0x1ee5d, 0x1ee5d}, +{0x1ee5f, 0x1ee5f}, +{0x1ee61, 0x1ee62}, +{0x1ee64, 0x1ee64}, +{0x1ee67, 0x1ee6a}, +{0x1ee6c, 0x1ee72}, +{0x1ee74, 0x1ee77}, +{0x1ee79, 0x1ee7c}, +{0x1ee7e, 0x1ee7e}, +{0x1ee80, 0x1ee89}, +{0x1ee8b, 0x1ee9b}, +{0x1eea1, 0x1eea3}, +{0x1eea5, 0x1eea9}, +{0x1eeab, 0x1eebb}, +{0x1eef0, 0x1eef1}, +{0x1f000, 0x1f003}, +{0x1f004, 0x1f004}, +{0x1f005, 0x1f02b}, +{0x1f030, 0x1f093}, +{0x1f0a0, 0x1f0ae}, +{0x1f0b1, 0x1f0bf}, +{0x1f0c1, 0x1f0ce}, +{0x1f0cf, 0x1f0cf}, +{0x1f0d1, 0x1f0f5}, +{0x1f100, 0x1f10a}, +{0x1f10b, 0x1f10f}, +{0x1f110, 0x1f12d}, +{0x1f12e, 0x1f12f}, +{0x1f130, 0x1f169}, +{0x1f16a, 0x1f16f}, +{0x1f170, 0x1f18d}, +{0x1f18e, 0x1f18e}, +{0x1f18f, 0x1f190}, +{0x1f191, 0x1f19a}, +{0x1f19b, 0x1f1ac}, +{0x1f1ad, 0x1f1ad}, +{0x1f1e6, 0x1f1ff}, {0x1f200, 0x1f202}, -{0x1f210, 0x1f23a}, +{0x1f210, 0x1f23b}, {0x1f240, 0x1f248}, {0x1f250, 0x1f251}, +{0x1f260, 0x1f265}, +{0x1f300, 0x1f320}, +{0x1f321, 0x1f32c}, +{0x1f32d, 0x1f335}, +{0x1f336, 0x1f336}, +{0x1f337, 0x1f37c}, +{0x1f37d, 0x1f37d}, +{0x1f37e, 0x1f393}, +{0x1f394, 0x1f39f}, +{0x1f3a0, 0x1f3ca}, +{0x1f3cb, 0x1f3ce}, +{0x1f3cf, 0x1f3d3}, +{0x1f3d4, 0x1f3df}, +{0x1f3e0, 0x1f3f0}, +{0x1f3f1, 0x1f3f3}, +{0x1f3f4, 0x1f3f4}, +{0x1f3f5, 0x1f3f7}, +{0x1f3f8, 0x1f43e}, +{0x1f43f, 0x1f43f}, +{0x1f440, 0x1f440}, +{0x1f441, 0x1f441}, +{0x1f442, 0x1f4fc}, +{0x1f4fd, 0x1f4fe}, +{0x1f4ff, 0x1f53d}, +{0x1f53e, 0x1f54a}, +{0x1f54b, 0x1f54e}, +{0x1f54f, 0x1f54f}, +{0x1f550, 0x1f567}, +{0x1f568, 0x1f579}, +{0x1f57a, 0x1f57a}, +{0x1f57b, 0x1f594}, +{0x1f595, 0x1f596}, +{0x1f597, 0x1f5a3}, +{0x1f5a4, 0x1f5a4}, +{0x1f5a5, 0x1f5fa}, +{0x1f5fb, 0x1f64f}, +{0x1f650, 0x1f67f}, +{0x1f680, 0x1f6c5}, +{0x1f6c6, 0x1f6cb}, +{0x1f6cc, 0x1f6cc}, +{0x1f6cd, 0x1f6cf}, +{0x1f6d0, 0x1f6d2}, +{0x1f6d3, 0x1f6d4}, +{0x1f6d5, 0x1f6d7}, +{0x1f6e0, 0x1f6ea}, +{0x1f6eb, 0x1f6ec}, +{0x1f6f0, 0x1f6f3}, +{0x1f6f4, 0x1f6fc}, +{0x1f700, 0x1f773}, +{0x1f780, 0x1f7d8}, +{0x1f7e0, 0x1f7eb}, +{0x1f800, 0x1f80b}, +{0x1f810, 0x1f847}, +{0x1f850, 0x1f859}, +{0x1f860, 0x1f887}, +{0x1f890, 0x1f8ad}, +{0x1f8b0, 0x1f8b1}, +{0x1f900, 0x1f90b}, +{0x1f90c, 0x1f93a}, +{0x1f93b, 0x1f93b}, +{0x1f93c, 0x1f945}, +{0x1f946, 0x1f946}, +{0x1f947, 0x1f978}, +{0x1f97a, 0x1f9cb}, +{0x1f9cd, 0x1f9ff}, +{0x1fa00, 0x1fa53}, +{0x1fa60, 0x1fa6d}, +{0x1fa70, 0x1fa74}, +{0x1fa78, 0x1fa7a}, +{0x1fa80, 0x1fa86}, +{0x1fa90, 0x1faa8}, +{0x1fab0, 0x1fab6}, +{0x1fac0, 0x1fac2}, +{0x1fad0, 0x1fad6}, +{0x1fb00, 0x1fb92}, +{0x1fb94, 0x1fbca}, +{0x1fbf0, 0x1fbf9}, {0x20000, 0x2fffd}, -{0x30000, 0x3fffd} +{0x30000, 0x3fffd}, +{0xe0001, 0xe0001}, +{0xe0020, 0xe007f}, +{0xe0100, 0xe01ef}, +{0xf0000, 0xffffd}, +{0x100000, 0x10fffd}, }; + +static const unicode_eastasia_t unicode_eastasia_v[]={ +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_Na, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_Na, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_Na, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_Na, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_Na, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_H, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_Na, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_Na, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_F, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_F, +UNICODE_EASTASIA_H, +UNICODE_EASTASIA_H, +UNICODE_EASTASIA_H, +UNICODE_EASTASIA_H, +UNICODE_EASTASIA_H, +UNICODE_EASTASIA_F, +UNICODE_EASTASIA_H, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_W, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_N, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_A, +UNICODE_EASTASIA_A, +}; + diff --git a/unicode/emojitab.h b/unicode/emojitab.h new file mode 100644 index 0000000..5192849 --- /dev/null +++ b/unicode/emojitab.h @@ -0,0 +1,1211 @@ +static const char32_t unicode_emoji_emoji_lookup[][2]={ + {35, 35}, + {42, 42}, + {48, 57}, + {169, 169}, + {174, 174}, + {8252, 8252}, + {8265, 8265}, + {8482, 8482}, + {8505, 8505}, + {8596, 8601}, + {8617, 8618}, + {8986, 8987}, + {9000, 9000}, + {9167, 9167}, + {9193, 9196}, + {9197, 9198}, + {9199, 9199}, + {9200, 9200}, + {9201, 9202}, + {9203, 9203}, + {9208, 9210}, + {9410, 9410}, + {9642, 9643}, + {9654, 9654}, + {9664, 9664}, + {9723, 9726}, + {9728, 9729}, + {9730, 9731}, + {9732, 9732}, + {9742, 9742}, + {9745, 9745}, + {9748, 9749}, + {9752, 9752}, + {9757, 9757}, + {9760, 9760}, + {9762, 9763}, + {9766, 9766}, + {9770, 9770}, + {9774, 9774}, + {9775, 9775}, + {9784, 9785}, + {9786, 9786}, + {9792, 9792}, + {9794, 9794}, + {9800, 9811}, + {9823, 9823}, + {9824, 9824}, + {9827, 9827}, + {9829, 9830}, + {9832, 9832}, + {9851, 9851}, + {9854, 9854}, + {9855, 9855}, + {9874, 9874}, + {9875, 9875}, + {9876, 9876}, + {9877, 9877}, + {9878, 9879}, + {9881, 9881}, + {9883, 9884}, + {9888, 9889}, + {9895, 9895}, + {9898, 9899}, + {9904, 9905}, + {9917, 9918}, + {9924, 9925}, + {9928, 9928}, + {9934, 9934}, + {9935, 9935}, + {9937, 9937}, + {9939, 9939}, + {9940, 9940}, + {9961, 9961}, + {9962, 9962}, + {9968, 9969}, + {9970, 9971}, + {9972, 9972}, + {9973, 9973}, + {9975, 9977}, + {9978, 9978}, + {9981, 9981}, + {9986, 9986}, + {9989, 9989}, + {9992, 9996}, + {9997, 9997}, + {9999, 9999}, + {10002, 10002}, + {10004, 10004}, + {10006, 10006}, + {10013, 10013}, + {10017, 10017}, + {10024, 10024}, + {10035, 10036}, + {10052, 10052}, + {10055, 10055}, + {10060, 10060}, + {10062, 10062}, + {10067, 10069}, + {10071, 10071}, + {10083, 10083}, + {10084, 10084}, + {10133, 10135}, + {10145, 10145}, + {10160, 10160}, + {10175, 10175}, + {10548, 10549}, + {11013, 11015}, + {11035, 11036}, + {11088, 11088}, + {11093, 11093}, + {12336, 12336}, + {12349, 12349}, + {12951, 12951}, + {12953, 12953}, + {126980, 126980}, + {127183, 127183}, + {127344, 127345}, + {127358, 127359}, + {127374, 127374}, + {127377, 127386}, + {127462, 127487}, + {127489, 127490}, + {127514, 127514}, + {127535, 127535}, + {127538, 127546}, + {127568, 127569}, + {127744, 127756}, + {127757, 127758}, + {127759, 127759}, + {127760, 127760}, + {127761, 127761}, + {127762, 127762}, + {127763, 127765}, + {127766, 127768}, + {127769, 127769}, + {127770, 127770}, + {127771, 127771}, + {127772, 127772}, + {127773, 127774}, + {127775, 127776}, + {127777, 127777}, + {127780, 127788}, + {127789, 127791}, + {127792, 127793}, + {127794, 127795}, + {127796, 127797}, + {127798, 127798}, + {127799, 127818}, + {127819, 127819}, + {127820, 127823}, + {127824, 127824}, + {127825, 127867}, + {127868, 127868}, + {127869, 127869}, + {127870, 127871}, + {127872, 127891}, + {127894, 127895}, + {127897, 127899}, + {127902, 127903}, + {127904, 127940}, + {127941, 127941}, + {127942, 127942}, + {127943, 127943}, + {127944, 127944}, + {127945, 127945}, + {127946, 127946}, + {127947, 127950}, + {127951, 127955}, + {127956, 127967}, + {127968, 127971}, + {127972, 127972}, + {127973, 127984}, + {127987, 127987}, + {127988, 127988}, + {127989, 127989}, + {127991, 127991}, + {127992, 128007}, + {128008, 128008}, + {128009, 128011}, + {128012, 128014}, + {128015, 128016}, + {128017, 128018}, + {128019, 128019}, + {128020, 128020}, + {128021, 128021}, + {128022, 128022}, + {128023, 128041}, + {128042, 128042}, + {128043, 128062}, + {128063, 128063}, + {128064, 128064}, + {128065, 128065}, + {128066, 128100}, + {128101, 128101}, + {128102, 128107}, + {128108, 128109}, + {128110, 128172}, + {128173, 128173}, + {128174, 128181}, + {128182, 128183}, + {128184, 128235}, + {128236, 128237}, + {128238, 128238}, + {128239, 128239}, + {128240, 128244}, + {128245, 128245}, + {128246, 128247}, + {128248, 128248}, + {128249, 128252}, + {128253, 128253}, + {128255, 128258}, + {128259, 128259}, + {128260, 128263}, + {128264, 128264}, + {128265, 128265}, + {128266, 128276}, + {128277, 128277}, + {128278, 128299}, + {128300, 128301}, + {128302, 128317}, + {128329, 128330}, + {128331, 128334}, + {128336, 128347}, + {128348, 128359}, + {128367, 128368}, + {128371, 128377}, + {128378, 128378}, + {128391, 128391}, + {128394, 128397}, + {128400, 128400}, + {128405, 128406}, + {128420, 128420}, + {128421, 128421}, + {128424, 128424}, + {128433, 128434}, + {128444, 128444}, + {128450, 128452}, + {128465, 128467}, + {128476, 128478}, + {128481, 128481}, + {128483, 128483}, + {128488, 128488}, + {128495, 128495}, + {128499, 128499}, + {128506, 128506}, + {128507, 128511}, + {128512, 128512}, + {128513, 128518}, + {128519, 128520}, + {128521, 128525}, + {128526, 128526}, + {128527, 128527}, + {128528, 128528}, + {128529, 128529}, + {128530, 128532}, + {128533, 128533}, + {128534, 128534}, + {128535, 128535}, + {128536, 128536}, + {128537, 128537}, + {128538, 128538}, + {128539, 128539}, + {128540, 128542}, + {128543, 128543}, + {128544, 128549}, + {128550, 128551}, + {128552, 128555}, + {128556, 128556}, + {128557, 128557}, + {128558, 128559}, + {128560, 128563}, + {128564, 128564}, + {128565, 128565}, + {128566, 128566}, + {128567, 128576}, + {128577, 128580}, + {128581, 128591}, + {128640, 128640}, + {128641, 128642}, + {128643, 128645}, + {128646, 128646}, + {128647, 128647}, + {128648, 128648}, + {128649, 128649}, + {128650, 128651}, + {128652, 128652}, + {128653, 128653}, + {128654, 128654}, + {128655, 128655}, + {128656, 128656}, + {128657, 128659}, + {128660, 128660}, + {128661, 128661}, + {128662, 128662}, + {128663, 128663}, + {128664, 128664}, + {128665, 128666}, + {128667, 128673}, + {128674, 128674}, + {128675, 128675}, + {128676, 128677}, + {128678, 128678}, + {128679, 128685}, + {128686, 128689}, + {128690, 128690}, + {128691, 128693}, + {128694, 128694}, + {128695, 128696}, + {128697, 128702}, + {128703, 128703}, + {128704, 128704}, + {128705, 128709}, + {128715, 128715}, + {128716, 128716}, + {128717, 128719}, + {128720, 128720}, + {128721, 128722}, + {128725, 128725}, + {128726, 128727}, + {128736, 128741}, + {128745, 128745}, + {128747, 128748}, + {128752, 128752}, + {128755, 128755}, + {128756, 128758}, + {128759, 128760}, + {128761, 128761}, + {128762, 128762}, + {128763, 128764}, + {128992, 129003}, + {129292, 129292}, + {129293, 129295}, + {129296, 129304}, + {129305, 129310}, + {129311, 129311}, + {129312, 129319}, + {129320, 129327}, + {129328, 129328}, + {129329, 129330}, + {129331, 129338}, + {129340, 129342}, + {129343, 129343}, + {129344, 129349}, + {129351, 129355}, + {129356, 129356}, + {129357, 129359}, + {129360, 129374}, + {129375, 129387}, + {129388, 129392}, + {129393, 129393}, + {129394, 129394}, + {129395, 129398}, + {129399, 129400}, + {129402, 129402}, + {129403, 129403}, + {129404, 129407}, + {129408, 129412}, + {129413, 129425}, + {129426, 129431}, + {129432, 129442}, + {129443, 129444}, + {129445, 129450}, + {129451, 129453}, + {129454, 129455}, + {129456, 129465}, + {129466, 129471}, + {129472, 129472}, + {129473, 129474}, + {129475, 129482}, + {129483, 129483}, + {129485, 129487}, + {129488, 129510}, + {129511, 129535}, + {129648, 129651}, + {129652, 129652}, + {129656, 129658}, + {129664, 129666}, + {129667, 129670}, + {129680, 129685}, + {129686, 129704}, + {129712, 129718}, + {129728, 129730}, + {129744, 129750}, +}; + +static const char32_t unicode_emoji_emoji_presentation_lookup[][2]={ + {8986, 8987}, + {9193, 9196}, + {9200, 9200}, + {9203, 9203}, + {9725, 9726}, + {9748, 9749}, + {9800, 9811}, + {9855, 9855}, + {9875, 9875}, + {9889, 9889}, + {9898, 9899}, + {9917, 9918}, + {9924, 9925}, + {9934, 9934}, + {9940, 9940}, + {9962, 9962}, + {9970, 9971}, + {9973, 9973}, + {9978, 9978}, + {9981, 9981}, + {9989, 9989}, + {9994, 9995}, + {10024, 10024}, + {10060, 10060}, + {10062, 10062}, + {10067, 10069}, + {10071, 10071}, + {10133, 10135}, + {10160, 10160}, + {10175, 10175}, + {11035, 11036}, + {11088, 11088}, + {11093, 11093}, + {126980, 126980}, + {127183, 127183}, + {127374, 127374}, + {127377, 127386}, + {127462, 127487}, + {127489, 127489}, + {127514, 127514}, + {127535, 127535}, + {127538, 127542}, + {127544, 127546}, + {127568, 127569}, + {127744, 127756}, + {127757, 127758}, + {127759, 127759}, + {127760, 127760}, + {127761, 127761}, + {127762, 127762}, + {127763, 127765}, + {127766, 127768}, + {127769, 127769}, + {127770, 127770}, + {127771, 127771}, + {127772, 127772}, + {127773, 127774}, + {127775, 127776}, + {127789, 127791}, + {127792, 127793}, + {127794, 127795}, + {127796, 127797}, + {127799, 127818}, + {127819, 127819}, + {127820, 127823}, + {127824, 127824}, + {127825, 127867}, + {127868, 127868}, + {127870, 127871}, + {127872, 127891}, + {127904, 127940}, + {127941, 127941}, + {127942, 127942}, + {127943, 127943}, + {127944, 127944}, + {127945, 127945}, + {127946, 127946}, + {127951, 127955}, + {127968, 127971}, + {127972, 127972}, + {127973, 127984}, + {127988, 127988}, + {127992, 128007}, + {128008, 128008}, + {128009, 128011}, + {128012, 128014}, + {128015, 128016}, + {128017, 128018}, + {128019, 128019}, + {128020, 128020}, + {128021, 128021}, + {128022, 128022}, + {128023, 128041}, + {128042, 128042}, + {128043, 128062}, + {128064, 128064}, + {128066, 128100}, + {128101, 128101}, + {128102, 128107}, + {128108, 128109}, + {128110, 128172}, + {128173, 128173}, + {128174, 128181}, + {128182, 128183}, + {128184, 128235}, + {128236, 128237}, + {128238, 128238}, + {128239, 128239}, + {128240, 128244}, + {128245, 128245}, + {128246, 128247}, + {128248, 128248}, + {128249, 128252}, + {128255, 128258}, + {128259, 128259}, + {128260, 128263}, + {128264, 128264}, + {128265, 128265}, + {128266, 128276}, + {128277, 128277}, + {128278, 128299}, + {128300, 128301}, + {128302, 128317}, + {128331, 128334}, + {128336, 128347}, + {128348, 128359}, + {128378, 128378}, + {128405, 128406}, + {128420, 128420}, + {128507, 128511}, + {128512, 128512}, + {128513, 128518}, + {128519, 128520}, + {128521, 128525}, + {128526, 128526}, + {128527, 128527}, + {128528, 128528}, + {128529, 128529}, + {128530, 128532}, + {128533, 128533}, + {128534, 128534}, + {128535, 128535}, + {128536, 128536}, + {128537, 128537}, + {128538, 128538}, + {128539, 128539}, + {128540, 128542}, + {128543, 128543}, + {128544, 128549}, + {128550, 128551}, + {128552, 128555}, + {128556, 128556}, + {128557, 128557}, + {128558, 128559}, + {128560, 128563}, + {128564, 128564}, + {128565, 128565}, + {128566, 128566}, + {128567, 128576}, + {128577, 128580}, + {128581, 128591}, + {128640, 128640}, + {128641, 128642}, + {128643, 128645}, + {128646, 128646}, + {128647, 128647}, + {128648, 128648}, + {128649, 128649}, + {128650, 128651}, + {128652, 128652}, + {128653, 128653}, + {128654, 128654}, + {128655, 128655}, + {128656, 128656}, + {128657, 128659}, + {128660, 128660}, + {128661, 128661}, + {128662, 128662}, + {128663, 128663}, + {128664, 128664}, + {128665, 128666}, + {128667, 128673}, + {128674, 128674}, + {128675, 128675}, + {128676, 128677}, + {128678, 128678}, + {128679, 128685}, + {128686, 128689}, + {128690, 128690}, + {128691, 128693}, + {128694, 128694}, + {128695, 128696}, + {128697, 128702}, + {128703, 128703}, + {128704, 128704}, + {128705, 128709}, + {128716, 128716}, + {128720, 128720}, + {128721, 128722}, + {128725, 128725}, + {128726, 128727}, + {128747, 128748}, + {128756, 128758}, + {128759, 128760}, + {128761, 128761}, + {128762, 128762}, + {128763, 128764}, + {128992, 129003}, + {129292, 129292}, + {129293, 129295}, + {129296, 129304}, + {129305, 129310}, + {129311, 129311}, + {129312, 129319}, + {129320, 129327}, + {129328, 129328}, + {129329, 129330}, + {129331, 129338}, + {129340, 129342}, + {129343, 129343}, + {129344, 129349}, + {129351, 129355}, + {129356, 129356}, + {129357, 129359}, + {129360, 129374}, + {129375, 129387}, + {129388, 129392}, + {129393, 129393}, + {129394, 129394}, + {129395, 129398}, + {129399, 129400}, + {129402, 129402}, + {129403, 129403}, + {129404, 129407}, + {129408, 129412}, + {129413, 129425}, + {129426, 129431}, + {129432, 129442}, + {129443, 129444}, + {129445, 129450}, + {129451, 129453}, + {129454, 129455}, + {129456, 129465}, + {129466, 129471}, + {129472, 129472}, + {129473, 129474}, + {129475, 129482}, + {129483, 129483}, + {129485, 129487}, + {129488, 129510}, + {129511, 129535}, + {129648, 129651}, + {129652, 129652}, + {129656, 129658}, + {129664, 129666}, + {129667, 129670}, + {129680, 129685}, + {129686, 129704}, + {129712, 129718}, + {129728, 129730}, + {129744, 129750}, +}; + +static const char32_t unicode_emoji_emoji_modifier_lookup[][2]={ + {127995, 127999}, +}; + +static const char32_t unicode_emoji_emoji_modifier_base_lookup[][2]={ + {9757, 9757}, + {9977, 9977}, + {9994, 9996}, + {9997, 9997}, + {127877, 127877}, + {127938, 127940}, + {127943, 127943}, + {127946, 127946}, + {127947, 127948}, + {128066, 128067}, + {128070, 128080}, + {128102, 128107}, + {128108, 128109}, + {128110, 128120}, + {128124, 128124}, + {128129, 128131}, + {128133, 128135}, + {128143, 128143}, + {128145, 128145}, + {128170, 128170}, + {128372, 128373}, + {128378, 128378}, + {128400, 128400}, + {128405, 128406}, + {128581, 128583}, + {128587, 128591}, + {128675, 128675}, + {128692, 128693}, + {128694, 128694}, + {128704, 128704}, + {128716, 128716}, + {129292, 129292}, + {129295, 129295}, + {129304, 129304}, + {129305, 129310}, + {129311, 129311}, + {129318, 129318}, + {129328, 129328}, + {129329, 129330}, + {129331, 129337}, + {129340, 129342}, + {129399, 129399}, + {129461, 129462}, + {129464, 129465}, + {129467, 129467}, + {129485, 129487}, + {129489, 129501}, +}; + +static const char32_t unicode_emoji_emoji_component_lookup[][2]={ + {35, 35}, + {42, 42}, + {48, 57}, + {8205, 8205}, + {8419, 8419}, + {65039, 65039}, + {127462, 127487}, + {127995, 127999}, + {129456, 129459}, + {917536, 917631}, +}; + +static const char32_t unicode_emoji_extended_pictographic_lookup[][2]={ + {169, 169}, + {174, 174}, + {8252, 8252}, + {8265, 8265}, + {8482, 8482}, + {8505, 8505}, + {8596, 8601}, + {8617, 8618}, + {8986, 8987}, + {9000, 9000}, + {9096, 9096}, + {9167, 9167}, + {9193, 9196}, + {9197, 9198}, + {9199, 9199}, + {9200, 9200}, + {9201, 9202}, + {9203, 9203}, + {9208, 9210}, + {9410, 9410}, + {9642, 9643}, + {9654, 9654}, + {9664, 9664}, + {9723, 9726}, + {9728, 9729}, + {9730, 9731}, + {9732, 9732}, + {9733, 9733}, + {9735, 9741}, + {9742, 9742}, + {9743, 9744}, + {9745, 9745}, + {9746, 9746}, + {9748, 9749}, + {9750, 9751}, + {9752, 9752}, + {9753, 9756}, + {9757, 9757}, + {9758, 9759}, + {9760, 9760}, + {9761, 9761}, + {9762, 9763}, + {9764, 9765}, + {9766, 9766}, + {9767, 9769}, + {9770, 9770}, + {9771, 9773}, + {9774, 9774}, + {9775, 9775}, + {9776, 9783}, + {9784, 9785}, + {9786, 9786}, + {9787, 9791}, + {9792, 9792}, + {9793, 9793}, + {9794, 9794}, + {9795, 9799}, + {9800, 9811}, + {9812, 9822}, + {9823, 9823}, + {9824, 9824}, + {9825, 9826}, + {9827, 9827}, + {9828, 9828}, + {9829, 9830}, + {9831, 9831}, + {9832, 9832}, + {9833, 9850}, + {9851, 9851}, + {9852, 9853}, + {9854, 9854}, + {9855, 9855}, + {9856, 9861}, + {9872, 9873}, + {9874, 9874}, + {9875, 9875}, + {9876, 9876}, + {9877, 9877}, + {9878, 9879}, + {9880, 9880}, + {9881, 9881}, + {9882, 9882}, + {9883, 9884}, + {9885, 9887}, + {9888, 9889}, + {9890, 9894}, + {9895, 9895}, + {9896, 9897}, + {9898, 9899}, + {9900, 9903}, + {9904, 9905}, + {9906, 9916}, + {9917, 9918}, + {9919, 9923}, + {9924, 9925}, + {9926, 9927}, + {9928, 9928}, + {9929, 9933}, + {9934, 9934}, + {9935, 9935}, + {9936, 9936}, + {9937, 9937}, + {9938, 9938}, + {9939, 9939}, + {9940, 9940}, + {9941, 9960}, + {9961, 9961}, + {9962, 9962}, + {9963, 9967}, + {9968, 9969}, + {9970, 9971}, + {9972, 9972}, + {9973, 9973}, + {9974, 9974}, + {9975, 9977}, + {9978, 9978}, + {9979, 9980}, + {9981, 9981}, + {9982, 9985}, + {9986, 9986}, + {9987, 9988}, + {9989, 9989}, + {9992, 9996}, + {9997, 9997}, + {9998, 9998}, + {9999, 9999}, + {10000, 10001}, + {10002, 10002}, + {10004, 10004}, + {10006, 10006}, + {10013, 10013}, + {10017, 10017}, + {10024, 10024}, + {10035, 10036}, + {10052, 10052}, + {10055, 10055}, + {10060, 10060}, + {10062, 10062}, + {10067, 10069}, + {10071, 10071}, + {10083, 10083}, + {10084, 10084}, + {10085, 10087}, + {10133, 10135}, + {10145, 10145}, + {10160, 10160}, + {10175, 10175}, + {10548, 10549}, + {11013, 11015}, + {11035, 11036}, + {11088, 11088}, + {11093, 11093}, + {12336, 12336}, + {12349, 12349}, + {12951, 12951}, + {12953, 12953}, + {126976, 126979}, + {126980, 126980}, + {126981, 127182}, + {127183, 127183}, + {127184, 127231}, + {127245, 127247}, + {127279, 127279}, + {127340, 127343}, + {127344, 127345}, + {127358, 127359}, + {127374, 127374}, + {127377, 127386}, + {127405, 127461}, + {127489, 127490}, + {127491, 127503}, + {127514, 127514}, + {127535, 127535}, + {127538, 127546}, + {127548, 127551}, + {127561, 127567}, + {127568, 127569}, + {127570, 127743}, + {127744, 127756}, + {127757, 127758}, + {127759, 127759}, + {127760, 127760}, + {127761, 127761}, + {127762, 127762}, + {127763, 127765}, + {127766, 127768}, + {127769, 127769}, + {127770, 127770}, + {127771, 127771}, + {127772, 127772}, + {127773, 127774}, + {127775, 127776}, + {127777, 127777}, + {127778, 127779}, + {127780, 127788}, + {127789, 127791}, + {127792, 127793}, + {127794, 127795}, + {127796, 127797}, + {127798, 127798}, + {127799, 127818}, + {127819, 127819}, + {127820, 127823}, + {127824, 127824}, + {127825, 127867}, + {127868, 127868}, + {127869, 127869}, + {127870, 127871}, + {127872, 127891}, + {127892, 127893}, + {127894, 127895}, + {127896, 127896}, + {127897, 127899}, + {127900, 127901}, + {127902, 127903}, + {127904, 127940}, + {127941, 127941}, + {127942, 127942}, + {127943, 127943}, + {127944, 127944}, + {127945, 127945}, + {127946, 127946}, + {127947, 127950}, + {127951, 127955}, + {127956, 127967}, + {127968, 127971}, + {127972, 127972}, + {127973, 127984}, + {127985, 127986}, + {127987, 127987}, + {127988, 127988}, + {127989, 127989}, + {127990, 127990}, + {127991, 127991}, + {127992, 127994}, + {128000, 128007}, + {128008, 128008}, + {128009, 128011}, + {128012, 128014}, + {128015, 128016}, + {128017, 128018}, + {128019, 128019}, + {128020, 128020}, + {128021, 128021}, + {128022, 128022}, + {128023, 128041}, + {128042, 128042}, + {128043, 128062}, + {128063, 128063}, + {128064, 128064}, + {128065, 128065}, + {128066, 128100}, + {128101, 128101}, + {128102, 128107}, + {128108, 128109}, + {128110, 128172}, + {128173, 128173}, + {128174, 128181}, + {128182, 128183}, + {128184, 128235}, + {128236, 128237}, + {128238, 128238}, + {128239, 128239}, + {128240, 128244}, + {128245, 128245}, + {128246, 128247}, + {128248, 128248}, + {128249, 128252}, + {128253, 128253}, + {128254, 128254}, + {128255, 128258}, + {128259, 128259}, + {128260, 128263}, + {128264, 128264}, + {128265, 128265}, + {128266, 128276}, + {128277, 128277}, + {128278, 128299}, + {128300, 128301}, + {128302, 128317}, + {128326, 128328}, + {128329, 128330}, + {128331, 128334}, + {128335, 128335}, + {128336, 128347}, + {128348, 128359}, + {128360, 128366}, + {128367, 128368}, + {128369, 128370}, + {128371, 128377}, + {128378, 128378}, + {128379, 128390}, + {128391, 128391}, + {128392, 128393}, + {128394, 128397}, + {128398, 128399}, + {128400, 128400}, + {128401, 128404}, + {128405, 128406}, + {128407, 128419}, + {128420, 128420}, + {128421, 128421}, + {128422, 128423}, + {128424, 128424}, + {128425, 128432}, + {128433, 128434}, + {128435, 128443}, + {128444, 128444}, + {128445, 128449}, + {128450, 128452}, + {128453, 128464}, + {128465, 128467}, + {128468, 128475}, + {128476, 128478}, + {128479, 128480}, + {128481, 128481}, + {128482, 128482}, + {128483, 128483}, + {128484, 128487}, + {128488, 128488}, + {128489, 128494}, + {128495, 128495}, + {128496, 128498}, + {128499, 128499}, + {128500, 128505}, + {128506, 128506}, + {128507, 128511}, + {128512, 128512}, + {128513, 128518}, + {128519, 128520}, + {128521, 128525}, + {128526, 128526}, + {128527, 128527}, + {128528, 128528}, + {128529, 128529}, + {128530, 128532}, + {128533, 128533}, + {128534, 128534}, + {128535, 128535}, + {128536, 128536}, + {128537, 128537}, + {128538, 128538}, + {128539, 128539}, + {128540, 128542}, + {128543, 128543}, + {128544, 128549}, + {128550, 128551}, + {128552, 128555}, + {128556, 128556}, + {128557, 128557}, + {128558, 128559}, + {128560, 128563}, + {128564, 128564}, + {128565, 128565}, + {128566, 128566}, + {128567, 128576}, + {128577, 128580}, + {128581, 128591}, + {128640, 128640}, + {128641, 128642}, + {128643, 128645}, + {128646, 128646}, + {128647, 128647}, + {128648, 128648}, + {128649, 128649}, + {128650, 128651}, + {128652, 128652}, + {128653, 128653}, + {128654, 128654}, + {128655, 128655}, + {128656, 128656}, + {128657, 128659}, + {128660, 128660}, + {128661, 128661}, + {128662, 128662}, + {128663, 128663}, + {128664, 128664}, + {128665, 128666}, + {128667, 128673}, + {128674, 128674}, + {128675, 128675}, + {128676, 128677}, + {128678, 128678}, + {128679, 128685}, + {128686, 128689}, + {128690, 128690}, + {128691, 128693}, + {128694, 128694}, + {128695, 128696}, + {128697, 128702}, + {128703, 128703}, + {128704, 128704}, + {128705, 128709}, + {128710, 128714}, + {128715, 128715}, + {128716, 128716}, + {128717, 128719}, + {128720, 128720}, + {128721, 128722}, + {128723, 128724}, + {128725, 128725}, + {128726, 128727}, + {128728, 128735}, + {128736, 128741}, + {128742, 128744}, + {128745, 128745}, + {128746, 128746}, + {128747, 128748}, + {128749, 128751}, + {128752, 128752}, + {128753, 128754}, + {128755, 128755}, + {128756, 128758}, + {128759, 128760}, + {128761, 128761}, + {128762, 128762}, + {128763, 128764}, + {128765, 128767}, + {128884, 128895}, + {128981, 128991}, + {128992, 129003}, + {129004, 129023}, + {129036, 129039}, + {129096, 129103}, + {129114, 129119}, + {129160, 129167}, + {129198, 129279}, + {129292, 129292}, + {129293, 129295}, + {129296, 129304}, + {129305, 129310}, + {129311, 129311}, + {129312, 129319}, + {129320, 129327}, + {129328, 129328}, + {129329, 129330}, + {129331, 129338}, + {129340, 129342}, + {129343, 129343}, + {129344, 129349}, + {129351, 129355}, + {129356, 129356}, + {129357, 129359}, + {129360, 129374}, + {129375, 129387}, + {129388, 129392}, + {129393, 129393}, + {129394, 129394}, + {129395, 129398}, + {129399, 129400}, + {129401, 129401}, + {129402, 129402}, + {129403, 129403}, + {129404, 129407}, + {129408, 129412}, + {129413, 129425}, + {129426, 129431}, + {129432, 129442}, + {129443, 129444}, + {129445, 129450}, + {129451, 129453}, + {129454, 129455}, + {129456, 129465}, + {129466, 129471}, + {129472, 129472}, + {129473, 129474}, + {129475, 129482}, + {129483, 129483}, + {129484, 129484}, + {129485, 129487}, + {129488, 129510}, + {129511, 129535}, + {129536, 129647}, + {129648, 129651}, + {129652, 129652}, + {129653, 129655}, + {129656, 129658}, + {129659, 129663}, + {129664, 129666}, + {129667, 129670}, + {129671, 129679}, + {129680, 129685}, + {129686, 129704}, + {129705, 129711}, + {129712, 129718}, + {129719, 129727}, + {129728, 129730}, + {129731, 129743}, + {129744, 129750}, + {129751, 129791}, + {130048, 131069}, +}; + diff --git a/unicode/graphemebreaktab.h b/unicode/graphemebreaktab.h index bba8667..09e63c3 100644 --- a/unicode/graphemebreaktab.h +++ b/unicode/graphemebreaktab.h @@ -28,11 +28,14 @@ static const uint8_t unicode_rangetab[][2]={ {0x0730 & 0xFF, 0x074a & 0xFF}, {0x07a6 & 0xFF, 0x07b0 & 0xFF}, {0x07eb & 0xFF, 0x07f3 & 0xFF}, + {0x07fd & 0xFF, 0x07fd & 0xFF}, {0x0816 & 0xFF, 0x0819 & 0xFF}, {0x081b & 0xFF, 0x0823 & 0xFF}, {0x0825 & 0xFF, 0x0827 & 0xFF}, {0x0829 & 0xFF, 0x082d & 0xFF}, {0x0859 & 0xFF, 0x085b & 0xFF}, + {0x08d3 & 0xFF, 0x08e1 & 0xFF}, + {0x08e2 & 0xFF, 0x08e2 & 0xFF}, {0x08e3 & 0xFF, 0x08ff & 0xFF}, {0x0900 & 0xFF, 0x0902 & 0xFF}, {0x0903 & 0xFF, 0x0903 & 0xFF}, @@ -57,6 +60,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x09cd & 0xFF, 0x09cd & 0xFF}, {0x09d7 & 0xFF, 0x09d7 & 0xFF}, {0x09e2 & 0xFF, 0x09e3 & 0xFF}, + {0x09fe & 0xFF, 0x09fe & 0xFF}, {0x0a01 & 0xFF, 0x0a02 & 0xFF}, {0x0a03 & 0xFF, 0x0a03 & 0xFF}, {0x0a3c & 0xFF, 0x0a3c & 0xFF}, @@ -77,6 +81,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0acb & 0xFF, 0x0acc & 0xFF}, {0x0acd & 0xFF, 0x0acd & 0xFF}, {0x0ae2 & 0xFF, 0x0ae3 & 0xFF}, + {0x0afa & 0xFF, 0x0aff & 0xFF}, {0x0b01 & 0xFF, 0x0b01 & 0xFF}, {0x0b02 & 0xFF, 0x0b03 & 0xFF}, {0x0b3c & 0xFF, 0x0b3c & 0xFF}, @@ -86,7 +91,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0b47 & 0xFF, 0x0b48 & 0xFF}, {0x0b4b & 0xFF, 0x0b4c & 0xFF}, {0x0b4d & 0xFF, 0x0b4d & 0xFF}, - {0x0b56 & 0xFF, 0x0b57 & 0xFF}, + {0x0b55 & 0xFF, 0x0b57 & 0xFF}, {0x0b62 & 0xFF, 0x0b63 & 0xFF}, {0x0b82 & 0xFF, 0x0b82 & 0xFF}, {0x0bbe & 0xFF, 0x0bbe & 0xFF}, @@ -99,6 +104,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0bd7 & 0xFF, 0x0bd7 & 0xFF}, {0x0c00 & 0xFF, 0x0c00 & 0xFF}, {0x0c01 & 0xFF, 0x0c03 & 0xFF}, + {0x0c04 & 0xFF, 0x0c04 & 0xFF}, {0x0c3e & 0xFF, 0x0c40 & 0xFF}, {0x0c41 & 0xFF, 0x0c44 & 0xFF}, {0x0c46 & 0xFF, 0x0c48 & 0xFF}, @@ -119,16 +125,19 @@ static const uint8_t unicode_rangetab[][2]={ {0x0ccc & 0xFF, 0x0ccd & 0xFF}, {0x0cd5 & 0xFF, 0x0cd6 & 0xFF}, {0x0ce2 & 0xFF, 0x0ce3 & 0xFF}, - {0x0d01 & 0xFF, 0x0d01 & 0xFF}, + {0x0d00 & 0xFF, 0x0d01 & 0xFF}, {0x0d02 & 0xFF, 0x0d03 & 0xFF}, + {0x0d3b & 0xFF, 0x0d3c & 0xFF}, {0x0d3e & 0xFF, 0x0d3e & 0xFF}, {0x0d3f & 0xFF, 0x0d40 & 0xFF}, {0x0d41 & 0xFF, 0x0d44 & 0xFF}, {0x0d46 & 0xFF, 0x0d48 & 0xFF}, {0x0d4a & 0xFF, 0x0d4c & 0xFF}, {0x0d4d & 0xFF, 0x0d4d & 0xFF}, + {0x0d4e & 0xFF, 0x0d4e & 0xFF}, {0x0d57 & 0xFF, 0x0d57 & 0xFF}, {0x0d62 & 0xFF, 0x0d63 & 0xFF}, + {0x0d81 & 0xFF, 0x0d81 & 0xFF}, {0x0d82 & 0xFF, 0x0d83 & 0xFF}, {0x0dca & 0xFF, 0x0dca & 0xFF}, {0x0dcf & 0xFF, 0x0dcf & 0xFF}, @@ -144,8 +153,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0e47 & 0xFF, 0x0e4e & 0xFF}, {0x0eb1 & 0xFF, 0x0eb1 & 0xFF}, {0x0eb3 & 0xFF, 0x0eb3 & 0xFF}, - {0x0eb4 & 0xFF, 0x0eb9 & 0xFF}, - {0x0ebb & 0xFF, 0x0ebc & 0xFF}, + {0x0eb4 & 0xFF, 0x0ebc & 0xFF}, {0x0ec8 & 0xFF, 0x0ecd & 0xFF}, {0x0f18 & 0xFF, 0x0f19 & 0xFF}, {0x0f35 & 0xFF, 0x0f35 & 0xFF}, @@ -192,6 +200,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x17dd & 0xFF, 0x17dd & 0xFF}, {0x180b & 0xFF, 0x180d & 0xFF}, {0x180e & 0xFF, 0x180e & 0xFF}, + {0x1885 & 0xFF, 0x1886 & 0xFF}, {0x18a9 & 0xFF, 0x18a9 & 0xFF}, {0x1920 & 0xFF, 0x1922 & 0xFF}, {0x1923 & 0xFF, 0x1926 & 0xFF}, @@ -214,12 +223,10 @@ static const uint8_t unicode_rangetab[][2]={ {0x1a6d & 0xFF, 0x1a72 & 0xFF}, {0x1a73 & 0xFF, 0x1a7c & 0xFF}, {0x1a7f & 0xFF, 0x1a7f & 0xFF}, - {0x1ab0 & 0xFF, 0x1abe & 0xFF}, + {0x1ab0 & 0xFF, 0x1ac0 & 0xFF}, {0x1b00 & 0xFF, 0x1b03 & 0xFF}, {0x1b04 & 0xFF, 0x1b04 & 0xFF}, - {0x1b34 & 0xFF, 0x1b34 & 0xFF}, - {0x1b35 & 0xFF, 0x1b35 & 0xFF}, - {0x1b36 & 0xFF, 0x1b3a & 0xFF}, + {0x1b34 & 0xFF, 0x1b3a & 0xFF}, {0x1b3b & 0xFF, 0x1b3b & 0xFF}, {0x1b3c & 0xFF, 0x1b3c & 0xFF}, {0x1b3d & 0xFF, 0x1b41 & 0xFF}, @@ -251,13 +258,14 @@ static const uint8_t unicode_rangetab[][2]={ {0x1ce1 & 0xFF, 0x1ce1 & 0xFF}, {0x1ce2 & 0xFF, 0x1ce8 & 0xFF}, {0x1ced & 0xFF, 0x1ced & 0xFF}, - {0x1cf2 & 0xFF, 0x1cf3 & 0xFF}, {0x1cf4 & 0xFF, 0x1cf4 & 0xFF}, + {0x1cf7 & 0xFF, 0x1cf7 & 0xFF}, {0x1cf8 & 0xFF, 0x1cf9 & 0xFF}, - {0x1dc0 & 0xFF, 0x1df5 & 0xFF}, - {0x1dfc & 0xFF, 0x1dff & 0xFF}, + {0x1dc0 & 0xFF, 0x1df9 & 0xFF}, + {0x1dfb & 0xFF, 0x1dff & 0xFF}, {0x200b & 0xFF, 0x200b & 0xFF}, - {0x200c & 0xFF, 0x200d & 0xFF}, + {0x200c & 0xFF, 0x200c & 0xFF}, + {0x200d & 0xFF, 0x200d & 0xFF}, {0x200e & 0xFF, 0x200f & 0xFF}, {0x2028 & 0xFF, 0x202e & 0xFF}, {0x2060 & 0xFF, 0x206f & 0xFF}, @@ -277,10 +285,12 @@ static const uint8_t unicode_rangetab[][2]={ {0xa823 & 0xFF, 0xa824 & 0xFF}, {0xa825 & 0xFF, 0xa826 & 0xFF}, {0xa827 & 0xFF, 0xa827 & 0xFF}, + {0xa82c & 0xFF, 0xa82c & 0xFF}, {0xa880 & 0xFF, 0xa881 & 0xFF}, {0xa8b4 & 0xFF, 0xa8c3 & 0xFF}, - {0xa8c4 & 0xFF, 0xa8c4 & 0xFF}, + {0xa8c4 & 0xFF, 0xa8c5 & 0xFF}, {0xa8e0 & 0xFF, 0xa8f1 & 0xFF}, + {0xa8ff & 0xFF, 0xa8ff & 0xFF}, {0xa926 & 0xFF, 0xa92d & 0xFF}, {0xa947 & 0xFF, 0xa951 & 0xFF}, {0xa952 & 0xFF, 0xa953 & 0xFF}, @@ -291,8 +301,8 @@ static const uint8_t unicode_rangetab[][2]={ {0xa9b4 & 0xFF, 0xa9b5 & 0xFF}, {0xa9b6 & 0xFF, 0xa9b9 & 0xFF}, {0xa9ba & 0xFF, 0xa9bb & 0xFF}, - {0xa9bc & 0xFF, 0xa9bc & 0xFF}, - {0xa9bd & 0xFF, 0xa9c0 & 0xFF}, + {0xa9bc & 0xFF, 0xa9bd & 0xFF}, + {0xa9be & 0xFF, 0xa9c0 & 0xFF}, {0xa9e5 & 0xFF, 0xa9e5 & 0xFF}, {0xaa29 & 0xFF, 0xaa2e & 0xFF}, {0xaa2f & 0xFF, 0xaa30 & 0xFF}, @@ -1157,14 +1167,6 @@ static const uint8_t unicode_rangetab[][2]={ {0xd789 & 0xFF, 0xd7a3 & 0xFF}, {0xd7b0 & 0xFF, 0xd7c6 & 0xFF}, {0xd7cb & 0xFF, 0xd7fb & 0xFF}, - {0xd800 & 0xFF, 0xd8ff & 0xFF}, - {0xd900 & 0xFF, 0xd9ff & 0xFF}, - {0xda00 & 0xFF, 0xdaff & 0xFF}, - {0xdb00 & 0xFF, 0xdbff & 0xFF}, - {0xdc00 & 0xFF, 0xdcff & 0xFF}, - {0xdd00 & 0xFF, 0xddff & 0xFF}, - {0xde00 & 0xFF, 0xdeff & 0xFF}, - {0xdf00 & 0xFF, 0xdfff & 0xFF}, {0xfb1e & 0xFF, 0xfb1e & 0xFF}, {0xfe00 & 0xFF, 0xfe0f & 0xFF}, {0xfe20 & 0xFF, 0xfe2f & 0xFF}, @@ -1180,6 +1182,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x10a38 & 0xFF, 0x10a3a & 0xFF}, {0x10a3f & 0xFF, 0x10a3f & 0xFF}, {0x10ae5 & 0xFF, 0x10ae6 & 0xFF}, + {0x10d24 & 0xFF, 0x10d27 & 0xFF}, + {0x10eab & 0xFF, 0x10eac & 0xFF}, + {0x10f46 & 0xFF, 0x10f50 & 0xFF}, {0x11000 & 0xFF, 0x11000 & 0xFF}, {0x11001 & 0xFF, 0x11001 & 0xFF}, {0x11002 & 0xFF, 0x11002 & 0xFF}, @@ -1191,29 +1196,35 @@ static const uint8_t unicode_rangetab[][2]={ {0x110b7 & 0xFF, 0x110b8 & 0xFF}, {0x110b9 & 0xFF, 0x110ba & 0xFF}, {0x110bd & 0xFF, 0x110bd & 0xFF}, + {0x110cd & 0xFF, 0x110cd & 0xFF}, {0x11100 & 0xFF, 0x11102 & 0xFF}, {0x11127 & 0xFF, 0x1112b & 0xFF}, {0x1112c & 0xFF, 0x1112c & 0xFF}, {0x1112d & 0xFF, 0x11134 & 0xFF}, + {0x11145 & 0xFF, 0x11146 & 0xFF}, {0x11173 & 0xFF, 0x11173 & 0xFF}, {0x11180 & 0xFF, 0x11181 & 0xFF}, {0x11182 & 0xFF, 0x11182 & 0xFF}, {0x111b3 & 0xFF, 0x111b5 & 0xFF}, {0x111b6 & 0xFF, 0x111be & 0xFF}, {0x111bf & 0xFF, 0x111c0 & 0xFF}, - {0x111ca & 0xFF, 0x111cc & 0xFF}, + {0x111c2 & 0xFF, 0x111c3 & 0xFF}, + {0x111c9 & 0xFF, 0x111cc & 0xFF}, + {0x111ce & 0xFF, 0x111ce & 0xFF}, + {0x111cf & 0xFF, 0x111cf & 0xFF}, {0x1122c & 0xFF, 0x1122e & 0xFF}, {0x1122f & 0xFF, 0x11231 & 0xFF}, {0x11232 & 0xFF, 0x11233 & 0xFF}, {0x11234 & 0xFF, 0x11234 & 0xFF}, {0x11235 & 0xFF, 0x11235 & 0xFF}, {0x11236 & 0xFF, 0x11237 & 0xFF}, + {0x1123e & 0xFF, 0x1123e & 0xFF}, {0x112df & 0xFF, 0x112df & 0xFF}, {0x112e0 & 0xFF, 0x112e2 & 0xFF}, {0x112e3 & 0xFF, 0x112ea & 0xFF}, {0x11300 & 0xFF, 0x11301 & 0xFF}, {0x11302 & 0xFF, 0x11303 & 0xFF}, - {0x1133c & 0xFF, 0x1133c & 0xFF}, + {0x1133b & 0xFF, 0x1133c & 0xFF}, {0x1133e & 0xFF, 0x1133e & 0xFF}, {0x1133f & 0xFF, 0x1133f & 0xFF}, {0x11340 & 0xFF, 0x11340 & 0xFF}, @@ -1224,6 +1235,13 @@ static const uint8_t unicode_rangetab[][2]={ {0x11362 & 0xFF, 0x11363 & 0xFF}, {0x11366 & 0xFF, 0x1136c & 0xFF}, {0x11370 & 0xFF, 0x11374 & 0xFF}, + {0x11435 & 0xFF, 0x11437 & 0xFF}, + {0x11438 & 0xFF, 0x1143f & 0xFF}, + {0x11440 & 0xFF, 0x11441 & 0xFF}, + {0x11442 & 0xFF, 0x11444 & 0xFF}, + {0x11445 & 0xFF, 0x11445 & 0xFF}, + {0x11446 & 0xFF, 0x11446 & 0xFF}, + {0x1145e & 0xFF, 0x1145e & 0xFF}, {0x114b0 & 0xFF, 0x114b0 & 0xFF}, {0x114b1 & 0xFF, 0x114b2 & 0xFF}, {0x114b3 & 0xFF, 0x114b8 & 0xFF}, @@ -1261,10 +1279,74 @@ static const uint8_t unicode_rangetab[][2]={ {0x11722 & 0xFF, 0x11725 & 0xFF}, {0x11726 & 0xFF, 0x11726 & 0xFF}, {0x11727 & 0xFF, 0x1172b & 0xFF}, + {0x1182c & 0xFF, 0x1182e & 0xFF}, + {0x1182f & 0xFF, 0x11837 & 0xFF}, + {0x11838 & 0xFF, 0x11838 & 0xFF}, + {0x11839 & 0xFF, 0x1183a & 0xFF}, + {0x11930 & 0xFF, 0x11930 & 0xFF}, + {0x11931 & 0xFF, 0x11935 & 0xFF}, + {0x11937 & 0xFF, 0x11938 & 0xFF}, + {0x1193b & 0xFF, 0x1193c & 0xFF}, + {0x1193d & 0xFF, 0x1193d & 0xFF}, + {0x1193e & 0xFF, 0x1193e & 0xFF}, + {0x1193f & 0xFF, 0x1193f & 0xFF}, + {0x11940 & 0xFF, 0x11940 & 0xFF}, + {0x11941 & 0xFF, 0x11941 & 0xFF}, + {0x11942 & 0xFF, 0x11942 & 0xFF}, + {0x11943 & 0xFF, 0x11943 & 0xFF}, + {0x119d1 & 0xFF, 0x119d3 & 0xFF}, + {0x119d4 & 0xFF, 0x119d7 & 0xFF}, + {0x119da & 0xFF, 0x119db & 0xFF}, + {0x119dc & 0xFF, 0x119df & 0xFF}, + {0x119e0 & 0xFF, 0x119e0 & 0xFF}, + {0x119e4 & 0xFF, 0x119e4 & 0xFF}, + {0x11a01 & 0xFF, 0x11a0a & 0xFF}, + {0x11a33 & 0xFF, 0x11a38 & 0xFF}, + {0x11a39 & 0xFF, 0x11a39 & 0xFF}, + {0x11a3a & 0xFF, 0x11a3a & 0xFF}, + {0x11a3b & 0xFF, 0x11a3e & 0xFF}, + {0x11a47 & 0xFF, 0x11a47 & 0xFF}, + {0x11a51 & 0xFF, 0x11a56 & 0xFF}, + {0x11a57 & 0xFF, 0x11a58 & 0xFF}, + {0x11a59 & 0xFF, 0x11a5b & 0xFF}, + {0x11a84 & 0xFF, 0x11a89 & 0xFF}, + {0x11a8a & 0xFF, 0x11a96 & 0xFF}, + {0x11a97 & 0xFF, 0x11a97 & 0xFF}, + {0x11a98 & 0xFF, 0x11a99 & 0xFF}, + {0x11c2f & 0xFF, 0x11c2f & 0xFF}, + {0x11c30 & 0xFF, 0x11c36 & 0xFF}, + {0x11c38 & 0xFF, 0x11c3d & 0xFF}, + {0x11c3e & 0xFF, 0x11c3e & 0xFF}, + {0x11c3f & 0xFF, 0x11c3f & 0xFF}, + {0x11c92 & 0xFF, 0x11ca7 & 0xFF}, + {0x11ca9 & 0xFF, 0x11ca9 & 0xFF}, + {0x11caa & 0xFF, 0x11cb0 & 0xFF}, + {0x11cb1 & 0xFF, 0x11cb1 & 0xFF}, + {0x11cb2 & 0xFF, 0x11cb3 & 0xFF}, + {0x11cb4 & 0xFF, 0x11cb4 & 0xFF}, + {0x11cb5 & 0xFF, 0x11cb6 & 0xFF}, + {0x11d31 & 0xFF, 0x11d36 & 0xFF}, + {0x11d3a & 0xFF, 0x11d3a & 0xFF}, + {0x11d3c & 0xFF, 0x11d3d & 0xFF}, + {0x11d3f & 0xFF, 0x11d45 & 0xFF}, + {0x11d46 & 0xFF, 0x11d46 & 0xFF}, + {0x11d47 & 0xFF, 0x11d47 & 0xFF}, + {0x11d8a & 0xFF, 0x11d8e & 0xFF}, + {0x11d90 & 0xFF, 0x11d91 & 0xFF}, + {0x11d93 & 0xFF, 0x11d94 & 0xFF}, + {0x11d95 & 0xFF, 0x11d95 & 0xFF}, + {0x11d96 & 0xFF, 0x11d96 & 0xFF}, + {0x11d97 & 0xFF, 0x11d97 & 0xFF}, + {0x11ef3 & 0xFF, 0x11ef4 & 0xFF}, + {0x11ef5 & 0xFF, 0x11ef6 & 0xFF}, + {0x13430 & 0xFF, 0x13438 & 0xFF}, {0x16af0 & 0xFF, 0x16af4 & 0xFF}, {0x16b30 & 0xFF, 0x16b36 & 0xFF}, - {0x16f51 & 0xFF, 0x16f7e & 0xFF}, + {0x16f4f & 0xFF, 0x16f4f & 0xFF}, + {0x16f51 & 0xFF, 0x16f87 & 0xFF}, {0x16f8f & 0xFF, 0x16f92 & 0xFF}, + {0x16fe4 & 0xFF, 0x16fe4 & 0xFF}, + {0x16ff0 & 0xFF, 0x16ff1 & 0xFF}, {0x1bc9d & 0xFF, 0x1bc9e & 0xFF}, {0x1bca0 & 0xFF, 0x1bca3 & 0xFF}, {0x1d165 & 0xFF, 0x1d165 & 0xFF}, @@ -1283,9 +1365,20 @@ static const uint8_t unicode_rangetab[][2]={ {0x1da84 & 0xFF, 0x1da84 & 0xFF}, {0x1da9b & 0xFF, 0x1da9f & 0xFF}, {0x1daa1 & 0xFF, 0x1daaf & 0xFF}, + {0x1e000 & 0xFF, 0x1e006 & 0xFF}, + {0x1e008 & 0xFF, 0x1e018 & 0xFF}, + {0x1e01b & 0xFF, 0x1e021 & 0xFF}, + {0x1e023 & 0xFF, 0x1e024 & 0xFF}, + {0x1e026 & 0xFF, 0x1e02a & 0xFF}, + {0x1e130 & 0xFF, 0x1e136 & 0xFF}, + {0x1e2ec & 0xFF, 0x1e2ef & 0xFF}, {0x1e8d0 & 0xFF, 0x1e8d6 & 0xFF}, + {0x1e944 & 0xFF, 0x1e94a & 0xFF}, {0x1f1e6 & 0xFF, 0x1f1ff & 0xFF}, - {0xe0000 & 0xFF, 0xe00ff & 0xFF}, + {0x1f3fb & 0xFF, 0x1f3ff & 0xFF}, + {0xe0000 & 0xFF, 0xe001f & 0xFF}, + {0xe0020 & 0xFF, 0xe007f & 0xFF}, + {0xe0080 & 0xFF, 0xe00ff & 0xFF}, {0xe0100 & 0xFF, 0xe01ef & 0xFF}, {0xe01f0 & 0xFF, 0xe01ff & 0xFF}, {0xe0200 & 0xFF, 0xe02ff & 0xFF}, @@ -1318,17 +1411,18 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, - UNICODE_GRAPHEMEBREAK_Control, + UNICODE_GRAPHEMEBREAK_Prepend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, - UNICODE_GRAPHEMEBREAK_Control, + UNICODE_GRAPHEMEBREAK_Prepend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, - UNICODE_GRAPHEMEBREAK_Control, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, @@ -1339,6 +1433,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, @@ -1363,6 +1459,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, @@ -1383,6 +1480,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, @@ -1405,6 +1503,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, @@ -1427,11 +1526,14 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, @@ -1455,7 +1557,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, - UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, @@ -1499,6 +1600,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, @@ -1529,8 +1631,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, - UNICODE_GRAPHEMEBREAK_SpacingMark, - UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_SpacingMark, @@ -1556,13 +1656,14 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, - UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_ZWJ, UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Control, @@ -1582,12 +1683,14 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_L, UNICODE_GRAPHEMEBREAK_Extend, @@ -2462,14 +2565,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_LVT, UNICODE_GRAPHEMEBREAK_V, UNICODE_GRAPHEMEBREAK_T, - UNICODE_GRAPHEMEBREAK_Control, - UNICODE_GRAPHEMEBREAK_Control, - UNICODE_GRAPHEMEBREAK_Control, - UNICODE_GRAPHEMEBREAK_Control, - UNICODE_GRAPHEMEBREAK_Control, - UNICODE_GRAPHEMEBREAK_Control, - UNICODE_GRAPHEMEBREAK_Control, - UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, @@ -2485,6 +2580,9 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, @@ -2495,17 +2593,20 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, - UNICODE_GRAPHEMEBREAK_Control, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_Prepend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Prepend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, @@ -2513,6 +2614,9 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, @@ -2529,6 +2633,13 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, @@ -2566,19 +2677,91 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Prepend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_SpacingMark, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_SpacingMark, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Control, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, @@ -2590,6 +2773,9 @@ static const uint8_t unicode_classtab[]={ UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Regional_Indicator, + UNICODE_GRAPHEMEBREAK_Extend, + UNICODE_GRAPHEMEBREAK_Control, + UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Control, UNICODE_GRAPHEMEBREAK_Extend, UNICODE_GRAPHEMEBREAK_Control, @@ -2617,3597 +2803,3597 @@ static const size_t unicode_indextab[]={ 9, 14, 24, - 29, - 35, - 58, - 78, - 98, - 120, - 139, + 30, + 38, + 62, + 83, + 103, + 126, 148, - 160, - 175, - 178, - 178, - 179, - 179, - 179, - 179, - 191, - 194, - 202, - 216, - 243, - 255, - 257, - 257, - 257, - 263, - 263, - 263, - 263, - 263, - 263, - 263, - 263, - 263, - 263, - 263, - 263, + 156, + 168, + 183, + 186, + 186, + 187, + 187, + 187, + 187, + 199, + 203, + 211, + 225, + 250, + 262, 264, - 266, - 266, - 266, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 268, - 272, + 264, + 264, + 271, + 271, + 271, + 271, + 271, + 271, + 271, + 271, + 271, + 271, + 271, + 271, 272, - 282, - 295, - 314, - 321, - 341, - 360, - 379, - 398, - 417, - 436, - 455, - 475, - 494, - 513, - 532, - 551, - 570, - 589, - 609, - 628, - 647, - 666, - 685, - 704, - 723, - 743, - 762, - 781, - 800, - 819, - 838, - 857, - 877, - 896, - 915, - 934, - 953, - 972, - 991, - 1011, - 1030, - 1049, - 1068, - 1087, - 1106, - 1125, - 1145, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1166, - 1167, - 1167, - 1167, - 1170, - 1172, + 274, + 274, + 274, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 276, + 280, + 280, + 292, + 305, + 324, + 331, + 351, + 370, + 389, + 408, + 427, + 446, + 465, + 485, + 504, + 523, + 542, + 561, + 580, + 599, + 619, + 638, + 657, + 676, + 695, + 714, + 733, + 753, + 772, + 791, + 810, + 829, + 848, + 867, + 887, + 906, + 925, + 944, + 963, + 982, + 1001, + 1021, + 1040, + 1059, + 1078, + 1097, + 1116, + 1135, + 1155, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1168, + 1169, + 1169, + 1169, 1172, - 1173, + 1174, 1174, 1175, - 1175, - 1175, - 1175, - 1175, - 1175, - 1175, - 1181, - 1181, - 1181, - 1181, - 1181, - 1181, - 1192, - 1203, - 1212, - 1225, + 1176, + 1177, + 1177, + 1177, + 1177, + 1177, + 1177, + 1177, + 1183, + 1183, + 1183, + 1184, + 1185, + 1186, + 1198, + 1213, + 1223, 1236, - 1244, - 1257, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, + 1254, 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1262, - 1263, - 1264, - 1264, - 1264, - 1264, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1266, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1268, - 1277, - 1278, - 1278, - 1278, - 1278, - 1278, - 1278, - 1278, - 1278, - 1284, - 1284, - 1284, - 1284, - 1284, - 1284, - 1284, - 1284, - 1284, - 1284, - 1284, - 1284, - 1284, + 1275, + 1280, 1284, - 1285, - 1285, - 1285, - 1285, - 1285, - 1285, - 1285, - 1285, - 1285, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1286, - 1287, - 1289, - 1290, - 1291, - 1292, - 1293, - 1294, - 1295, - 1296, - 1297, - 1298, - 1299, - 1300, 1301, - 1302, - 1303}; + 1314, + 1314, + 1326, + 1338, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1340, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1341, + 1342, + 1343, + 1343, + 1343, + 1343, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1348, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1350, + 1359, + 1360, + 1360, + 1360, + 1360, + 1360, + 1360, + 1360, + 1360, + 1366, + 1366, + 1366, + 1366, + 1366, + 1366, + 1371, + 1372, + 1373, + 1373, + 1373, + 1373, + 1373, + 1373, + 1374, + 1375, + 1375, + 1375, + 1375, + 1375, + 1375, + 1375, + 1375, + 1376, + 1376, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1377, + 1380, + 1382, + 1383, + 1384, + 1385, + 1386, + 1387, + 1388, + 1389, + 1390, + 1391, + 1392, + 1393, + 1394, + 1395, + 1396}; diff --git a/unicode/graphemetest.c b/unicode/graphemetest.c index 00d65f2..fbad13d 100644 --- a/unicode/graphemetest.c +++ b/unicode/graphemetest.c @@ -16,9 +16,17 @@ int main(int argc, char **argv) { if (argc >= 3) { - printf("%d\n", - unicode_grapheme_break(strtol(argv[1], NULL, 0), - strtol(argv[2], NULL, 0))); + unicode_grapheme_break_info_t t=unicode_grapheme_break_init(); + int n=0; + int i; + for (i=1; i<argc; ++i) + { + n=unicode_grapheme_break_next(t, + strtol(argv[i], NULL, 0)); + } + unicode_grapheme_break_deinit(t); + + printf("%d\n", n); } return (0); } diff --git a/unicode/linebreaktab.h b/unicode/linebreaktab.h index 06f3976..db2bdd3 100644 --- a/unicode/linebreaktab.h +++ b/unicode/linebreaktab.h @@ -81,8 +81,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x048a & 0xFF, 0x04ff & 0xFF}, {0x0500 & 0xFF, 0x052f & 0xFF}, {0x0531 & 0xFF, 0x0556 & 0xFF}, - {0x0559 & 0xFF, 0x055f & 0xFF}, - {0x0561 & 0xFF, 0x0587 & 0xFF}, + {0x0559 & 0xFF, 0x0588 & 0xFF}, {0x0589 & 0xFF, 0x0589 & 0xFF}, {0x058a & 0xFF, 0x058a & 0xFF}, {0x058d & 0xFF, 0x058e & 0xFF}, @@ -97,7 +96,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x05c6 & 0xFF, 0x05c6 & 0xFF}, {0x05c7 & 0xFF, 0x05c7 & 0xFF}, {0x05d0 & 0xFF, 0x05ea & 0xFF}, - {0x05f0 & 0xFF, 0x05f2 & 0xFF}, + {0x05ef & 0xFF, 0x05f2 & 0xFF}, {0x05f3 & 0xFF, 0x05f4 & 0xFF}, {0x0600 & 0xFF, 0x0608 & 0xFF}, {0x0609 & 0xFF, 0x060b & 0xFF}, @@ -142,6 +141,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x07f8 & 0xFF, 0x07f8 & 0xFF}, {0x07f9 & 0xFF, 0x07f9 & 0xFF}, {0x07fa & 0xFF, 0x07fa & 0xFF}, + {0x07fd & 0xFF, 0x07fd & 0xFF}, + {0x07fe & 0xFF, 0x07ff & 0xFF}, {0x0800 & 0xFF, 0x0815 & 0xFF}, {0x0816 & 0xFF, 0x0819 & 0xFF}, {0x081a & 0xFF, 0x081a & 0xFF}, @@ -154,7 +155,11 @@ static const uint8_t unicode_rangetab[][2]={ {0x0840 & 0xFF, 0x0858 & 0xFF}, {0x0859 & 0xFF, 0x085b & 0xFF}, {0x085e & 0xFF, 0x085e & 0xFF}, + {0x0860 & 0xFF, 0x086a & 0xFF}, {0x08a0 & 0xFF, 0x08b4 & 0xFF}, + {0x08b6 & 0xFF, 0x08c7 & 0xFF}, + {0x08d3 & 0xFF, 0x08e1 & 0xFF}, + {0x08e2 & 0xFF, 0x08e2 & 0xFF}, {0x08e3 & 0xFF, 0x08ff & 0xFF}, {0x0900 & 0xFF, 0x0903 & 0xFF}, {0x0904 & 0xFF, 0x0939 & 0xFF}, @@ -192,6 +197,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x09f9 & 0xFF, 0x09f9 & 0xFF}, {0x09fa & 0xFF, 0x09fa & 0xFF}, {0x09fb & 0xFF, 0x09fb & 0xFF}, + {0x09fc & 0xFF, 0x09fd & 0xFF}, + {0x09fe & 0xFF, 0x09fe & 0xFF}, {0x0a01 & 0xFF, 0x0a03 & 0xFF}, {0x0a05 & 0xFF, 0x0a0a & 0xFF}, {0x0a0f & 0xFF, 0x0a10 & 0xFF}, @@ -211,6 +218,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0a70 & 0xFF, 0x0a71 & 0xFF}, {0x0a72 & 0xFF, 0x0a74 & 0xFF}, {0x0a75 & 0xFF, 0x0a75 & 0xFF}, + {0x0a76 & 0xFF, 0x0a76 & 0xFF}, {0x0a81 & 0xFF, 0x0a83 & 0xFF}, {0x0a85 & 0xFF, 0x0a8d & 0xFF}, {0x0a8f & 0xFF, 0x0a91 & 0xFF}, @@ -230,6 +238,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0af0 & 0xFF, 0x0af0 & 0xFF}, {0x0af1 & 0xFF, 0x0af1 & 0xFF}, {0x0af9 & 0xFF, 0x0af9 & 0xFF}, + {0x0afa & 0xFF, 0x0aff & 0xFF}, {0x0b01 & 0xFF, 0x0b03 & 0xFF}, {0x0b05 & 0xFF, 0x0b0c & 0xFF}, {0x0b0f & 0xFF, 0x0b10 & 0xFF}, @@ -242,7 +251,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0b3e & 0xFF, 0x0b44 & 0xFF}, {0x0b47 & 0xFF, 0x0b48 & 0xFF}, {0x0b4b & 0xFF, 0x0b4d & 0xFF}, - {0x0b56 & 0xFF, 0x0b57 & 0xFF}, + {0x0b55 & 0xFF, 0x0b57 & 0xFF}, {0x0b5c & 0xFF, 0x0b5d & 0xFF}, {0x0b5f & 0xFF, 0x0b61 & 0xFF}, {0x0b62 & 0xFF, 0x0b63 & 0xFF}, @@ -268,7 +277,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0bf0 & 0xFF, 0x0bf8 & 0xFF}, {0x0bf9 & 0xFF, 0x0bf9 & 0xFF}, {0x0bfa & 0xFF, 0x0bfa & 0xFF}, - {0x0c00 & 0xFF, 0x0c03 & 0xFF}, + {0x0c00 & 0xFF, 0x0c04 & 0xFF}, {0x0c05 & 0xFF, 0x0c0c & 0xFF}, {0x0c0e & 0xFF, 0x0c10 & 0xFF}, {0x0c12 & 0xFF, 0x0c28 & 0xFF}, @@ -282,8 +291,10 @@ static const uint8_t unicode_rangetab[][2]={ {0x0c60 & 0xFF, 0x0c61 & 0xFF}, {0x0c62 & 0xFF, 0x0c63 & 0xFF}, {0x0c66 & 0xFF, 0x0c6f & 0xFF}, - {0x0c78 & 0xFF, 0x0c7f & 0xFF}, + {0x0c77 & 0xFF, 0x0c77 & 0xFF}, + {0x0c78 & 0xFF, 0x0c80 & 0xFF}, {0x0c81 & 0xFF, 0x0c83 & 0xFF}, + {0x0c84 & 0xFF, 0x0c84 & 0xFF}, {0x0c85 & 0xFF, 0x0c8c & 0xFF}, {0x0c8e & 0xFF, 0x0c90 & 0xFF}, {0x0c92 & 0xFF, 0x0ca8 & 0xFF}, @@ -300,23 +311,25 @@ static const uint8_t unicode_rangetab[][2]={ {0x0ce2 & 0xFF, 0x0ce3 & 0xFF}, {0x0ce6 & 0xFF, 0x0cef & 0xFF}, {0x0cf1 & 0xFF, 0x0cf2 & 0xFF}, - {0x0d01 & 0xFF, 0x0d03 & 0xFF}, - {0x0d05 & 0xFF, 0x0d0c & 0xFF}, + {0x0d00 & 0xFF, 0x0d03 & 0xFF}, + {0x0d04 & 0xFF, 0x0d0c & 0xFF}, {0x0d0e & 0xFF, 0x0d10 & 0xFF}, {0x0d12 & 0xFF, 0x0d3a & 0xFF}, + {0x0d3b & 0xFF, 0x0d3c & 0xFF}, {0x0d3d & 0xFF, 0x0d3d & 0xFF}, {0x0d3e & 0xFF, 0x0d44 & 0xFF}, {0x0d46 & 0xFF, 0x0d48 & 0xFF}, {0x0d4a & 0xFF, 0x0d4d & 0xFF}, - {0x0d4e & 0xFF, 0x0d4e & 0xFF}, + {0x0d4e & 0xFF, 0x0d4f & 0xFF}, + {0x0d54 & 0xFF, 0x0d56 & 0xFF}, {0x0d57 & 0xFF, 0x0d57 & 0xFF}, - {0x0d5f & 0xFF, 0x0d61 & 0xFF}, + {0x0d58 & 0xFF, 0x0d61 & 0xFF}, {0x0d62 & 0xFF, 0x0d63 & 0xFF}, {0x0d66 & 0xFF, 0x0d6f & 0xFF}, - {0x0d70 & 0xFF, 0x0d75 & 0xFF}, + {0x0d70 & 0xFF, 0x0d78 & 0xFF}, {0x0d79 & 0xFF, 0x0d79 & 0xFF}, {0x0d7a & 0xFF, 0x0d7f & 0xFF}, - {0x0d82 & 0xFF, 0x0d83 & 0xFF}, + {0x0d81 & 0xFF, 0x0d83 & 0xFF}, {0x0d85 & 0xFF, 0x0d96 & 0xFF}, {0x0d9a & 0xFF, 0x0db1 & 0xFF}, {0x0db3 & 0xFF, 0x0dbb & 0xFF}, @@ -341,20 +354,13 @@ static const uint8_t unicode_rangetab[][2]={ {0x0e5a & 0xFF, 0x0e5b & 0xFF}, {0x0e81 & 0xFF, 0x0e82 & 0xFF}, {0x0e84 & 0xFF, 0x0e84 & 0xFF}, - {0x0e87 & 0xFF, 0x0e88 & 0xFF}, - {0x0e8a & 0xFF, 0x0e8a & 0xFF}, - {0x0e8d & 0xFF, 0x0e8d & 0xFF}, - {0x0e94 & 0xFF, 0x0e97 & 0xFF}, - {0x0e99 & 0xFF, 0x0e9f & 0xFF}, - {0x0ea1 & 0xFF, 0x0ea3 & 0xFF}, + {0x0e86 & 0xFF, 0x0e8a & 0xFF}, + {0x0e8c & 0xFF, 0x0ea3 & 0xFF}, {0x0ea5 & 0xFF, 0x0ea5 & 0xFF}, - {0x0ea7 & 0xFF, 0x0ea7 & 0xFF}, - {0x0eaa & 0xFF, 0x0eab & 0xFF}, - {0x0ead & 0xFF, 0x0eb0 & 0xFF}, + {0x0ea7 & 0xFF, 0x0eb0 & 0xFF}, {0x0eb1 & 0xFF, 0x0eb1 & 0xFF}, {0x0eb2 & 0xFF, 0x0eb3 & 0xFF}, - {0x0eb4 & 0xFF, 0x0eb9 & 0xFF}, - {0x0ebb & 0xFF, 0x0ebc & 0xFF}, + {0x0eb4 & 0xFF, 0x0ebc & 0xFF}, {0x0ebd & 0xFF, 0x0ebd & 0xFF}, {0x0ec0 & 0xFF, 0x0ec4 & 0xFF}, {0x0ec6 & 0xFF, 0x0ec6 & 0xFF}, @@ -506,8 +512,10 @@ static const uint8_t unicode_rangetab[][2]={ {0x180b & 0xFF, 0x180d & 0xFF}, {0x180e & 0xFF, 0x180e & 0xFF}, {0x1810 & 0xFF, 0x1819 & 0xFF}, - {0x1820 & 0xFF, 0x1877 & 0xFF}, - {0x1880 & 0xFF, 0x18a8 & 0xFF}, + {0x1820 & 0xFF, 0x1878 & 0xFF}, + {0x1880 & 0xFF, 0x1884 & 0xFF}, + {0x1885 & 0xFF, 0x1886 & 0xFF}, + {0x1887 & 0xFF, 0x18a8 & 0xFF}, {0x18a9 & 0xFF, 0x18a9 & 0xFF}, {0x18aa & 0xFF, 0x18aa & 0xFF}, {0x18b0 & 0xFF, 0x18f5 & 0xFF}, @@ -533,7 +541,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1a80 & 0xFF, 0x1a89 & 0xFF}, {0x1a90 & 0xFF, 0x1a99 & 0xFF}, {0x1aa0 & 0xFF, 0x1aad & 0xFF}, - {0x1ab0 & 0xFF, 0x1abe & 0xFF}, + {0x1ab0 & 0xFF, 0x1ac0 & 0xFF}, {0x1b00 & 0xFF, 0x1b04 & 0xFF}, {0x1b05 & 0xFF, 0x1b33 & 0xFF}, {0x1b34 & 0xFF, 0x1b44 & 0xFF}, @@ -561,19 +569,22 @@ static const uint8_t unicode_rangetab[][2]={ {0x1c50 & 0xFF, 0x1c59 & 0xFF}, {0x1c5a & 0xFF, 0x1c7d & 0xFF}, {0x1c7e & 0xFF, 0x1c7f & 0xFF}, - {0x1cc0 & 0xFF, 0x1cc7 & 0xFF}, + {0x1c80 & 0xFF, 0x1c88 & 0xFF}, + {0x1c90 & 0xFF, 0x1cba & 0xFF}, + {0x1cbd & 0xFF, 0x1cc7 & 0xFF}, {0x1cd0 & 0xFF, 0x1cd2 & 0xFF}, {0x1cd3 & 0xFF, 0x1cd3 & 0xFF}, {0x1cd4 & 0xFF, 0x1ce8 & 0xFF}, {0x1ce9 & 0xFF, 0x1cec & 0xFF}, {0x1ced & 0xFF, 0x1ced & 0xFF}, - {0x1cee & 0xFF, 0x1cf1 & 0xFF}, - {0x1cf2 & 0xFF, 0x1cf4 & 0xFF}, + {0x1cee & 0xFF, 0x1cf3 & 0xFF}, + {0x1cf4 & 0xFF, 0x1cf4 & 0xFF}, {0x1cf5 & 0xFF, 0x1cf6 & 0xFF}, - {0x1cf8 & 0xFF, 0x1cf9 & 0xFF}, + {0x1cf7 & 0xFF, 0x1cf9 & 0xFF}, + {0x1cfa & 0xFF, 0x1cfa & 0xFF}, {0x1d00 & 0xFF, 0x1dbf & 0xFF}, - {0x1dc0 & 0xFF, 0x1df5 & 0xFF}, - {0x1dfc & 0xFF, 0x1dff & 0xFF}, + {0x1dc0 & 0xFF, 0x1df9 & 0xFF}, + {0x1dfb & 0xFF, 0x1dff & 0xFF}, {0x1e00 & 0xFF, 0x1eff & 0xFF}, {0x1f00 & 0xFF, 0x1f15 & 0xFF}, {0x1f18 & 0xFF, 0x1f1d & 0xFF}, @@ -597,7 +608,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x2007 & 0xFF, 0x2007 & 0xFF}, {0x2008 & 0xFF, 0x200a & 0xFF}, {0x200b & 0xFF, 0x200b & 0xFF}, - {0x200c & 0xFF, 0x200f & 0xFF}, + {0x200c & 0xFF, 0x200c & 0xFF}, + {0x200d & 0xFF, 0x200d & 0xFF}, + {0x200e & 0xFF, 0x200f & 0xFF}, {0x2010 & 0xFF, 0x2010 & 0xFF}, {0x2011 & 0xFF, 0x2011 & 0xFF}, {0x2012 & 0xFF, 0x2013 & 0xFF}, @@ -676,7 +689,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x232a & 0xFF, 0x232a & 0xFF}, {0x232b & 0xFF, 0x23ef & 0xFF}, {0x23f0 & 0xFF, 0x23f3 & 0xFF}, - {0x23f4 & 0xFF, 0x23fa & 0xFF}, + {0x23f4 & 0xFF, 0x23ff & 0xFF}, {0x2400 & 0xFF, 0x2426 & 0xFF}, {0x2440 & 0xFF, 0x244a & 0xFF}, {0x2460 & 0xFF, 0x24ff & 0xFF}, @@ -687,7 +700,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x2616 & 0xFF, 0x2617 & 0xFF}, {0x2618 & 0xFF, 0x2618 & 0xFF}, {0x2619 & 0xFF, 0x2619 & 0xFF}, - {0x261a & 0xFF, 0x261f & 0xFF}, + {0x261a & 0xFF, 0x261c & 0xFF}, + {0x261d & 0xFF, 0x261d & 0xFF}, + {0x261e & 0xFF, 0x261f & 0xFF}, {0x2620 & 0xFF, 0x2638 & 0xFF}, {0x2639 & 0xFF, 0x263b & 0xFF}, {0x263c & 0xFF, 0x2667 & 0xFF}, @@ -713,17 +728,21 @@ static const uint8_t unicode_rangetab[][2]={ {0x26eb & 0xFF, 0x26f0 & 0xFF}, {0x26f1 & 0xFF, 0x26f5 & 0xFF}, {0x26f6 & 0xFF, 0x26f6 & 0xFF}, - {0x26f7 & 0xFF, 0x26fa & 0xFF}, + {0x26f7 & 0xFF, 0x26f8 & 0xFF}, + {0x26f9 & 0xFF, 0x26f9 & 0xFF}, + {0x26fa & 0xFF, 0x26fa & 0xFF}, {0x26fb & 0xFF, 0x26fc & 0xFF}, {0x26fd & 0xFF, 0x26ff & 0xFF}, {0x2700 & 0xFF, 0x2704 & 0xFF}, {0x2705 & 0xFF, 0x2707 & 0xFF}, - {0x2708 & 0xFF, 0x270d & 0xFF}, + {0x2708 & 0xFF, 0x2709 & 0xFF}, + {0x270a & 0xFF, 0x270d & 0xFF}, {0x270e & 0xFF, 0x275a & 0xFF}, {0x275b & 0xFF, 0x2760 & 0xFF}, {0x2761 & 0xFF, 0x2761 & 0xFF}, {0x2762 & 0xFF, 0x2763 & 0xFF}, - {0x2764 & 0xFF, 0x2767 & 0xFF}, + {0x2764 & 0xFF, 0x2764 & 0xFF}, + {0x2765 & 0xFF, 0x2767 & 0xFF}, {0x2768 & 0xFF, 0x2768 & 0xFF}, {0x2769 & 0xFF, 0x2769 & 0xFF}, {0x276a & 0xFF, 0x276a & 0xFF}, @@ -789,10 +808,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x2a00 & 0xFF, 0x2aff & 0xFF}, {0x2b00 & 0xFF, 0x2b73 & 0xFF}, {0x2b76 & 0xFF, 0x2b95 & 0xFF}, - {0x2b98 & 0xFF, 0x2bb9 & 0xFF}, - {0x2bbd & 0xFF, 0x2bc8 & 0xFF}, - {0x2bca & 0xFF, 0x2bd1 & 0xFF}, - {0x2bec & 0xFF, 0x2bef & 0xFF}, + {0x2b97 & 0xFF, 0x2bff & 0xFF}, {0x2c00 & 0xFF, 0x2c2e & 0xFF}, {0x2c30 & 0xFF, 0x2c5e & 0xFF}, {0x2c60 & 0xFF, 0x2cee & 0xFF}, @@ -850,6 +866,12 @@ static const uint8_t unicode_rangetab[][2]={ {0x2e3f & 0xFF, 0x2e3f & 0xFF}, {0x2e40 & 0xFF, 0x2e41 & 0xFF}, {0x2e42 & 0xFF, 0x2e42 & 0xFF}, + {0x2e43 & 0xFF, 0x2e4a & 0xFF}, + {0x2e4b & 0xFF, 0x2e4b & 0xFF}, + {0x2e4c & 0xFF, 0x2e4c & 0xFF}, + {0x2e4d & 0xFF, 0x2e4d & 0xFF}, + {0x2e4e & 0xFF, 0x2e4f & 0xFF}, + {0x2e50 & 0xFF, 0x2e52 & 0xFF}, {0x2e80 & 0xFF, 0x2e99 & 0xFF}, {0x2e9b & 0xFF, 0x2ef3 & 0xFF}, {0x2f00 & 0xFF, 0x2fd5 & 0xFF}, @@ -936,15 +958,14 @@ static const uint8_t unicode_rangetab[][2]={ {0x30f7 & 0xFF, 0x30fa & 0xFF}, {0x30fb & 0xFF, 0x30fe & 0xFF}, {0x30ff & 0xFF, 0x30ff & 0xFF}, - {0x3105 & 0xFF, 0x312d & 0xFF}, + {0x3105 & 0xFF, 0x312f & 0xFF}, {0x3131 & 0xFF, 0x318e & 0xFF}, - {0x3190 & 0xFF, 0x31ba & 0xFF}, - {0x31c0 & 0xFF, 0x31e3 & 0xFF}, + {0x3190 & 0xFF, 0x31e3 & 0xFF}, {0x31f0 & 0xFF, 0x31ff & 0xFF}, {0x3200 & 0xFF, 0x321e & 0xFF}, {0x3220 & 0xFF, 0x3247 & 0xFF}, {0x3248 & 0xFF, 0x324f & 0xFF}, - {0x3250 & 0xFF, 0x32fe & 0xFF}, + {0x3250 & 0xFF, 0x32ff & 0xFF}, {0x3300 & 0xFF, 0x33ff & 0xFF}, {0x3400 & 0xFF, 0x34ff & 0xFF}, {0x3500 & 0xFF, 0x35ff & 0xFF}, @@ -1083,9 +1104,9 @@ static const uint8_t unicode_rangetab[][2]={ {0xa6f0 & 0xFF, 0xa6f1 & 0xFF}, {0xa6f2 & 0xFF, 0xa6f2 & 0xFF}, {0xa6f3 & 0xFF, 0xa6f7 & 0xFF}, - {0xa700 & 0xFF, 0xa7ad & 0xFF}, - {0xa7b0 & 0xFF, 0xa7b7 & 0xFF}, - {0xa7f7 & 0xFF, 0xa7ff & 0xFF}, + {0xa700 & 0xFF, 0xa7bf & 0xFF}, + {0xa7c2 & 0xFF, 0xa7ca & 0xFF}, + {0xa7f5 & 0xFF, 0xa7ff & 0xFF}, {0xa800 & 0xFF, 0xa801 & 0xFF}, {0xa802 & 0xFF, 0xa802 & 0xFF}, {0xa803 & 0xFF, 0xa805 & 0xFF}, @@ -1095,6 +1116,7 @@ static const uint8_t unicode_rangetab[][2]={ {0xa80c & 0xFF, 0xa822 & 0xFF}, {0xa823 & 0xFF, 0xa827 & 0xFF}, {0xa828 & 0xFF, 0xa82b & 0xFF}, + {0xa82c & 0xFF, 0xa82c & 0xFF}, {0xa830 & 0xFF, 0xa837 & 0xFF}, {0xa838 & 0xFF, 0xa838 & 0xFF}, {0xa839 & 0xFF, 0xa839 & 0xFF}, @@ -1103,13 +1125,14 @@ static const uint8_t unicode_rangetab[][2]={ {0xa876 & 0xFF, 0xa877 & 0xFF}, {0xa880 & 0xFF, 0xa881 & 0xFF}, {0xa882 & 0xFF, 0xa8b3 & 0xFF}, - {0xa8b4 & 0xFF, 0xa8c4 & 0xFF}, + {0xa8b4 & 0xFF, 0xa8c5 & 0xFF}, {0xa8ce & 0xFF, 0xa8cf & 0xFF}, {0xa8d0 & 0xFF, 0xa8d9 & 0xFF}, {0xa8e0 & 0xFF, 0xa8f1 & 0xFF}, {0xa8f2 & 0xFF, 0xa8fb & 0xFF}, {0xa8fc & 0xFF, 0xa8fc & 0xFF}, - {0xa8fd & 0xFF, 0xa8fd & 0xFF}, + {0xa8fd & 0xFF, 0xa8fe & 0xFF}, + {0xa8ff & 0xFF, 0xa8ff & 0xFF}, {0xa900 & 0xFF, 0xa909 & 0xFF}, {0xa90a & 0xFF, 0xa925 & 0xFF}, {0xa926 & 0xFF, 0xa92d & 0xFF}, @@ -1163,7 +1186,7 @@ static const uint8_t unicode_rangetab[][2]={ {0xab11 & 0xFF, 0xab16 & 0xFF}, {0xab20 & 0xFF, 0xab26 & 0xFF}, {0xab28 & 0xFF, 0xab2e & 0xFF}, - {0xab30 & 0xFF, 0xab65 & 0xFF}, + {0xab30 & 0xFF, 0xab6b & 0xFF}, {0xab70 & 0xFF, 0xabe2 & 0xFF}, {0xabe3 & 0xFF, 0xabea & 0xFF}, {0xabeb & 0xFF, 0xabeb & 0xFF}, @@ -2144,8 +2167,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x10080 & 0xFF, 0x100fa & 0xFF}, {0x10100 & 0xFF, 0x10102 & 0xFF}, {0x10107 & 0xFF, 0x10133 & 0xFF}, - {0x10137 & 0xFF, 0x1018c & 0xFF}, - {0x10190 & 0xFF, 0x1019b & 0xFF}, + {0x10137 & 0xFF, 0x1018e & 0xFF}, + {0x10190 & 0xFF, 0x1019c & 0xFF}, {0x101a0 & 0xFF, 0x101a0 & 0xFF}, {0x101d0 & 0xFF, 0x101fc & 0xFF}, {0x101fd & 0xFF, 0x101fd & 0xFF}, @@ -2154,7 +2177,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x102e0 & 0xFF, 0x102e0 & 0xFF}, {0x102e1 & 0xFF, 0x102fb & 0xFF}, {0x10300 & 0xFF, 0x10323 & 0xFF}, - {0x10330 & 0xFF, 0x1034a & 0xFF}, + {0x1032d & 0xFF, 0x1034a & 0xFF}, {0x10350 & 0xFF, 0x10375 & 0xFF}, {0x10376 & 0xFF, 0x1037a & 0xFF}, {0x10380 & 0xFF, 0x1039d & 0xFF}, @@ -2165,6 +2188,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x103d1 & 0xFF, 0x103d5 & 0xFF}, {0x10400 & 0xFF, 0x1049d & 0xFF}, {0x104a0 & 0xFF, 0x104a9 & 0xFF}, + {0x104b0 & 0xFF, 0x104d3 & 0xFF}, + {0x104d8 & 0xFF, 0x104fb & 0xFF}, {0x10500 & 0xFF, 0x10527 & 0xFF}, {0x10530 & 0xFF, 0x10563 & 0xFF}, {0x1056f & 0xFF, 0x1056f & 0xFF}, @@ -2197,10 +2222,10 @@ static const uint8_t unicode_rangetab[][2]={ {0x10a0c & 0xFF, 0x10a0f & 0xFF}, {0x10a10 & 0xFF, 0x10a13 & 0xFF}, {0x10a15 & 0xFF, 0x10a17 & 0xFF}, - {0x10a19 & 0xFF, 0x10a33 & 0xFF}, + {0x10a19 & 0xFF, 0x10a35 & 0xFF}, {0x10a38 & 0xFF, 0x10a3a & 0xFF}, {0x10a3f & 0xFF, 0x10a3f & 0xFF}, - {0x10a40 & 0xFF, 0x10a47 & 0xFF}, + {0x10a40 & 0xFF, 0x10a48 & 0xFF}, {0x10a50 & 0xFF, 0x10a57 & 0xFF}, {0x10a58 & 0xFF, 0x10a58 & 0xFF}, {0x10a60 & 0xFF, 0x10a9f & 0xFF}, @@ -2220,7 +2245,20 @@ static const uint8_t unicode_rangetab[][2]={ {0x10c80 & 0xFF, 0x10cb2 & 0xFF}, {0x10cc0 & 0xFF, 0x10cf2 & 0xFF}, {0x10cfa & 0xFF, 0x10cff & 0xFF}, + {0x10d00 & 0xFF, 0x10d23 & 0xFF}, + {0x10d24 & 0xFF, 0x10d27 & 0xFF}, + {0x10d30 & 0xFF, 0x10d39 & 0xFF}, {0x10e60 & 0xFF, 0x10e7e & 0xFF}, + {0x10e80 & 0xFF, 0x10ea9 & 0xFF}, + {0x10eab & 0xFF, 0x10eac & 0xFF}, + {0x10ead & 0xFF, 0x10ead & 0xFF}, + {0x10eb0 & 0xFF, 0x10eb1 & 0xFF}, + {0x10f00 & 0xFF, 0x10f27 & 0xFF}, + {0x10f30 & 0xFF, 0x10f45 & 0xFF}, + {0x10f46 & 0xFF, 0x10f50 & 0xFF}, + {0x10f51 & 0xFF, 0x10f59 & 0xFF}, + {0x10fb0 & 0xFF, 0x10fcb & 0xFF}, + {0x10fe0 & 0xFF, 0x10ff6 & 0xFF}, {0x11000 & 0xFF, 0x11002 & 0xFF}, {0x11003 & 0xFF, 0x11037 & 0xFF}, {0x11038 & 0xFF, 0x11046 & 0xFF}, @@ -2233,6 +2271,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x110b0 & 0xFF, 0x110ba & 0xFF}, {0x110bb & 0xFF, 0x110bd & 0xFF}, {0x110be & 0xFF, 0x110c1 & 0xFF}, + {0x110cd & 0xFF, 0x110cd & 0xFF}, {0x110d0 & 0xFF, 0x110e8 & 0xFF}, {0x110f0 & 0xFF, 0x110f9 & 0xFF}, {0x11100 & 0xFF, 0x11102 & 0xFF}, @@ -2240,6 +2279,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x11127 & 0xFF, 0x11134 & 0xFF}, {0x11136 & 0xFF, 0x1113f & 0xFF}, {0x11140 & 0xFF, 0x11143 & 0xFF}, + {0x11144 & 0xFF, 0x11144 & 0xFF}, + {0x11145 & 0xFF, 0x11146 & 0xFF}, + {0x11147 & 0xFF, 0x11147 & 0xFF}, {0x11150 & 0xFF, 0x11172 & 0xFF}, {0x11173 & 0xFF, 0x11173 & 0xFF}, {0x11174 & 0xFF, 0x11174 & 0xFF}, @@ -2252,9 +2294,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x111c5 & 0xFF, 0x111c6 & 0xFF}, {0x111c7 & 0xFF, 0x111c7 & 0xFF}, {0x111c8 & 0xFF, 0x111c8 & 0xFF}, - {0x111c9 & 0xFF, 0x111c9 & 0xFF}, - {0x111ca & 0xFF, 0x111cc & 0xFF}, + {0x111c9 & 0xFF, 0x111cc & 0xFF}, {0x111cd & 0xFF, 0x111cd & 0xFF}, + {0x111ce & 0xFF, 0x111cf & 0xFF}, {0x111d0 & 0xFF, 0x111d9 & 0xFF}, {0x111da & 0xFF, 0x111da & 0xFF}, {0x111db & 0xFF, 0x111db & 0xFF}, @@ -2268,6 +2310,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1123a & 0xFF, 0x1123a & 0xFF}, {0x1123b & 0xFF, 0x1123c & 0xFF}, {0x1123d & 0xFF, 0x1123d & 0xFF}, + {0x1123e & 0xFF, 0x1123e & 0xFF}, {0x11280 & 0xFF, 0x11286 & 0xFF}, {0x11288 & 0xFF, 0x11288 & 0xFF}, {0x1128a & 0xFF, 0x1128d & 0xFF}, @@ -2284,7 +2327,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1132a & 0xFF, 0x11330 & 0xFF}, {0x11332 & 0xFF, 0x11333 & 0xFF}, {0x11335 & 0xFF, 0x11339 & 0xFF}, - {0x1133c & 0xFF, 0x1133c & 0xFF}, + {0x1133b & 0xFF, 0x1133c & 0xFF}, {0x1133d & 0xFF, 0x1133d & 0xFF}, {0x1133e & 0xFF, 0x11344 & 0xFF}, {0x11347 & 0xFF, 0x11348 & 0xFF}, @@ -2295,6 +2338,16 @@ static const uint8_t unicode_rangetab[][2]={ {0x11362 & 0xFF, 0x11363 & 0xFF}, {0x11366 & 0xFF, 0x1136c & 0xFF}, {0x11370 & 0xFF, 0x11374 & 0xFF}, + {0x11400 & 0xFF, 0x11434 & 0xFF}, + {0x11435 & 0xFF, 0x11446 & 0xFF}, + {0x11447 & 0xFF, 0x1144a & 0xFF}, + {0x1144b & 0xFF, 0x1144e & 0xFF}, + {0x1144f & 0xFF, 0x1144f & 0xFF}, + {0x11450 & 0xFF, 0x11459 & 0xFF}, + {0x1145a & 0xFF, 0x1145b & 0xFF}, + {0x1145d & 0xFF, 0x1145d & 0xFF}, + {0x1145e & 0xFF, 0x1145e & 0xFF}, + {0x1145f & 0xFF, 0x11461 & 0xFF}, {0x11480 & 0xFF, 0x114af & 0xFF}, {0x114b0 & 0xFF, 0x114c3 & 0xFF}, {0x114c4 & 0xFF, 0x114c7 & 0xFF}, @@ -2314,20 +2367,106 @@ static const uint8_t unicode_rangetab[][2]={ {0x11641 & 0xFF, 0x11642 & 0xFF}, {0x11643 & 0xFF, 0x11644 & 0xFF}, {0x11650 & 0xFF, 0x11659 & 0xFF}, + {0x11660 & 0xFF, 0x1166c & 0xFF}, {0x11680 & 0xFF, 0x116aa & 0xFF}, {0x116ab & 0xFF, 0x116b7 & 0xFF}, + {0x116b8 & 0xFF, 0x116b8 & 0xFF}, {0x116c0 & 0xFF, 0x116c9 & 0xFF}, - {0x11700 & 0xFF, 0x11719 & 0xFF}, + {0x11700 & 0xFF, 0x1171a & 0xFF}, {0x1171d & 0xFF, 0x1172b & 0xFF}, {0x11730 & 0xFF, 0x11739 & 0xFF}, {0x1173a & 0xFF, 0x1173b & 0xFF}, {0x1173c & 0xFF, 0x1173e & 0xFF}, {0x1173f & 0xFF, 0x1173f & 0xFF}, + {0x11800 & 0xFF, 0x1182b & 0xFF}, + {0x1182c & 0xFF, 0x1183a & 0xFF}, + {0x1183b & 0xFF, 0x1183b & 0xFF}, {0x118a0 & 0xFF, 0x118df & 0xFF}, {0x118e0 & 0xFF, 0x118e9 & 0xFF}, {0x118ea & 0xFF, 0x118f2 & 0xFF}, {0x118ff & 0xFF, 0x118ff & 0xFF}, + {0x11900 & 0xFF, 0x11906 & 0xFF}, + {0x11909 & 0xFF, 0x11909 & 0xFF}, + {0x1190c & 0xFF, 0x11913 & 0xFF}, + {0x11915 & 0xFF, 0x11916 & 0xFF}, + {0x11918 & 0xFF, 0x1192f & 0xFF}, + {0x11930 & 0xFF, 0x11935 & 0xFF}, + {0x11937 & 0xFF, 0x11938 & 0xFF}, + {0x1193b & 0xFF, 0x1193e & 0xFF}, + {0x1193f & 0xFF, 0x1193f & 0xFF}, + {0x11940 & 0xFF, 0x11940 & 0xFF}, + {0x11941 & 0xFF, 0x11941 & 0xFF}, + {0x11942 & 0xFF, 0x11943 & 0xFF}, + {0x11944 & 0xFF, 0x11946 & 0xFF}, + {0x11950 & 0xFF, 0x11959 & 0xFF}, + {0x119a0 & 0xFF, 0x119a7 & 0xFF}, + {0x119aa & 0xFF, 0x119d0 & 0xFF}, + {0x119d1 & 0xFF, 0x119d7 & 0xFF}, + {0x119da & 0xFF, 0x119e0 & 0xFF}, + {0x119e1 & 0xFF, 0x119e1 & 0xFF}, + {0x119e2 & 0xFF, 0x119e2 & 0xFF}, + {0x119e3 & 0xFF, 0x119e3 & 0xFF}, + {0x119e4 & 0xFF, 0x119e4 & 0xFF}, + {0x11a00 & 0xFF, 0x11a00 & 0xFF}, + {0x11a01 & 0xFF, 0x11a0a & 0xFF}, + {0x11a0b & 0xFF, 0x11a32 & 0xFF}, + {0x11a33 & 0xFF, 0x11a39 & 0xFF}, + {0x11a3a & 0xFF, 0x11a3a & 0xFF}, + {0x11a3b & 0xFF, 0x11a3e & 0xFF}, + {0x11a3f & 0xFF, 0x11a3f & 0xFF}, + {0x11a40 & 0xFF, 0x11a40 & 0xFF}, + {0x11a41 & 0xFF, 0x11a44 & 0xFF}, + {0x11a45 & 0xFF, 0x11a45 & 0xFF}, + {0x11a46 & 0xFF, 0x11a46 & 0xFF}, + {0x11a47 & 0xFF, 0x11a47 & 0xFF}, + {0x11a50 & 0xFF, 0x11a50 & 0xFF}, + {0x11a51 & 0xFF, 0x11a5b & 0xFF}, + {0x11a5c & 0xFF, 0x11a89 & 0xFF}, + {0x11a8a & 0xFF, 0x11a99 & 0xFF}, + {0x11a9a & 0xFF, 0x11a9c & 0xFF}, + {0x11a9d & 0xFF, 0x11a9d & 0xFF}, + {0x11a9e & 0xFF, 0x11aa0 & 0xFF}, + {0x11aa1 & 0xFF, 0x11aa2 & 0xFF}, {0x11ac0 & 0xFF, 0x11af8 & 0xFF}, + {0x11c00 & 0xFF, 0x11c08 & 0xFF}, + {0x11c0a & 0xFF, 0x11c2e & 0xFF}, + {0x11c2f & 0xFF, 0x11c36 & 0xFF}, + {0x11c38 & 0xFF, 0x11c3f & 0xFF}, + {0x11c40 & 0xFF, 0x11c40 & 0xFF}, + {0x11c41 & 0xFF, 0x11c45 & 0xFF}, + {0x11c50 & 0xFF, 0x11c59 & 0xFF}, + {0x11c5a & 0xFF, 0x11c6c & 0xFF}, + {0x11c70 & 0xFF, 0x11c70 & 0xFF}, + {0x11c71 & 0xFF, 0x11c71 & 0xFF}, + {0x11c72 & 0xFF, 0x11c8f & 0xFF}, + {0x11c92 & 0xFF, 0x11ca7 & 0xFF}, + {0x11ca9 & 0xFF, 0x11cb6 & 0xFF}, + {0x11d00 & 0xFF, 0x11d06 & 0xFF}, + {0x11d08 & 0xFF, 0x11d09 & 0xFF}, + {0x11d0b & 0xFF, 0x11d30 & 0xFF}, + {0x11d31 & 0xFF, 0x11d36 & 0xFF}, + {0x11d3a & 0xFF, 0x11d3a & 0xFF}, + {0x11d3c & 0xFF, 0x11d3d & 0xFF}, + {0x11d3f & 0xFF, 0x11d45 & 0xFF}, + {0x11d46 & 0xFF, 0x11d46 & 0xFF}, + {0x11d47 & 0xFF, 0x11d47 & 0xFF}, + {0x11d50 & 0xFF, 0x11d59 & 0xFF}, + {0x11d60 & 0xFF, 0x11d65 & 0xFF}, + {0x11d67 & 0xFF, 0x11d68 & 0xFF}, + {0x11d6a & 0xFF, 0x11d89 & 0xFF}, + {0x11d8a & 0xFF, 0x11d8e & 0xFF}, + {0x11d90 & 0xFF, 0x11d91 & 0xFF}, + {0x11d93 & 0xFF, 0x11d97 & 0xFF}, + {0x11d98 & 0xFF, 0x11d98 & 0xFF}, + {0x11da0 & 0xFF, 0x11da9 & 0xFF}, + {0x11ee0 & 0xFF, 0x11ef2 & 0xFF}, + {0x11ef3 & 0xFF, 0x11ef6 & 0xFF}, + {0x11ef7 & 0xFF, 0x11ef8 & 0xFF}, + {0x11fb0 & 0xFF, 0x11fb0 & 0xFF}, + {0x11fc0 & 0xFF, 0x11fdc & 0xFF}, + {0x11fdd & 0xFF, 0x11fe0 & 0xFF}, + {0x11fe1 & 0xFF, 0x11ff1 & 0xFF}, + {0x11fff & 0xFF, 0x11fff & 0xFF}, {0x12000 & 0xFF, 0x120ff & 0xFF}, {0x12100 & 0xFF, 0x121ff & 0xFF}, {0x12200 & 0xFF, 0x122ff & 0xFF}, @@ -2354,6 +2493,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x1337a & 0xFF, 0x1337b & 0xFF}, {0x1337c & 0xFF, 0x133ff & 0xFF}, {0x13400 & 0xFF, 0x1342e & 0xFF}, + {0x13430 & 0xFF, 0x13436 & 0xFF}, + {0x13437 & 0xFF, 0x13437 & 0xFF}, + {0x13438 & 0xFF, 0x13438 & 0xFF}, {0x14400 & 0xFF, 0x144ff & 0xFF}, {0x14500 & 0xFF, 0x145cd & 0xFF}, {0x145ce & 0xFF, 0x145ce & 0xFF}, @@ -2379,12 +2521,54 @@ static const uint8_t unicode_rangetab[][2]={ {0x16b5b & 0xFF, 0x16b61 & 0xFF}, {0x16b63 & 0xFF, 0x16b77 & 0xFF}, {0x16b7d & 0xFF, 0x16b8f & 0xFF}, - {0x16f00 & 0xFF, 0x16f44 & 0xFF}, + {0x16e40 & 0xFF, 0x16e96 & 0xFF}, + {0x16e97 & 0xFF, 0x16e98 & 0xFF}, + {0x16e99 & 0xFF, 0x16e9a & 0xFF}, + {0x16f00 & 0xFF, 0x16f4a & 0xFF}, + {0x16f4f & 0xFF, 0x16f4f & 0xFF}, {0x16f50 & 0xFF, 0x16f50 & 0xFF}, - {0x16f51 & 0xFF, 0x16f7e & 0xFF}, + {0x16f51 & 0xFF, 0x16f87 & 0xFF}, {0x16f8f & 0xFF, 0x16f92 & 0xFF}, {0x16f93 & 0xFF, 0x16f9f & 0xFF}, - {0x1b000 & 0xFF, 0x1b001 & 0xFF}, + {0x16fe0 & 0xFF, 0x16fe3 & 0xFF}, + {0x16fe4 & 0xFF, 0x16fe4 & 0xFF}, + {0x16ff0 & 0xFF, 0x16ff1 & 0xFF}, + {0x17000 & 0xFF, 0x170ff & 0xFF}, + {0x17100 & 0xFF, 0x171ff & 0xFF}, + {0x17200 & 0xFF, 0x172ff & 0xFF}, + {0x17300 & 0xFF, 0x173ff & 0xFF}, + {0x17400 & 0xFF, 0x174ff & 0xFF}, + {0x17500 & 0xFF, 0x175ff & 0xFF}, + {0x17600 & 0xFF, 0x176ff & 0xFF}, + {0x17700 & 0xFF, 0x177ff & 0xFF}, + {0x17800 & 0xFF, 0x178ff & 0xFF}, + {0x17900 & 0xFF, 0x179ff & 0xFF}, + {0x17a00 & 0xFF, 0x17aff & 0xFF}, + {0x17b00 & 0xFF, 0x17bff & 0xFF}, + {0x17c00 & 0xFF, 0x17cff & 0xFF}, + {0x17d00 & 0xFF, 0x17dff & 0xFF}, + {0x17e00 & 0xFF, 0x17eff & 0xFF}, + {0x17f00 & 0xFF, 0x17fff & 0xFF}, + {0x18000 & 0xFF, 0x180ff & 0xFF}, + {0x18100 & 0xFF, 0x181ff & 0xFF}, + {0x18200 & 0xFF, 0x182ff & 0xFF}, + {0x18300 & 0xFF, 0x183ff & 0xFF}, + {0x18400 & 0xFF, 0x184ff & 0xFF}, + {0x18500 & 0xFF, 0x185ff & 0xFF}, + {0x18600 & 0xFF, 0x186ff & 0xFF}, + {0x18700 & 0xFF, 0x187f7 & 0xFF}, + {0x18800 & 0xFF, 0x188ff & 0xFF}, + {0x18900 & 0xFF, 0x189ff & 0xFF}, + {0x18a00 & 0xFF, 0x18aff & 0xFF}, + {0x18b00 & 0xFF, 0x18bff & 0xFF}, + {0x18c00 & 0xFF, 0x18cd5 & 0xFF}, + {0x18d00 & 0xFF, 0x18d08 & 0xFF}, + {0x1b000 & 0xFF, 0x1b0ff & 0xFF}, + {0x1b100 & 0xFF, 0x1b11e & 0xFF}, + {0x1b150 & 0xFF, 0x1b152 & 0xFF}, + {0x1b164 & 0xFF, 0x1b167 & 0xFF}, + {0x1b170 & 0xFF, 0x1b1ff & 0xFF}, + {0x1b200 & 0xFF, 0x1b2fb & 0xFF}, {0x1bc00 & 0xFF, 0x1bc6a & 0xFF}, {0x1bc70 & 0xFF, 0x1bc7c & 0xFF}, {0x1bc80 & 0xFF, 0x1bc88 & 0xFF}, @@ -2407,8 +2591,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x1d200 & 0xFF, 0x1d241 & 0xFF}, {0x1d242 & 0xFF, 0x1d244 & 0xFF}, {0x1d245 & 0xFF, 0x1d245 & 0xFF}, + {0x1d2e0 & 0xFF, 0x1d2f3 & 0xFF}, {0x1d300 & 0xFF, 0x1d356 & 0xFF}, - {0x1d360 & 0xFF, 0x1d371 & 0xFF}, + {0x1d360 & 0xFF, 0x1d378 & 0xFF}, {0x1d400 & 0xFF, 0x1d454 & 0xFF}, {0x1d456 & 0xFF, 0x1d49c & 0xFF}, {0x1d49e & 0xFF, 0x1d49f & 0xFF}, @@ -2447,9 +2632,34 @@ static const uint8_t unicode_rangetab[][2]={ {0x1da8b & 0xFF, 0x1da8b & 0xFF}, {0x1da9b & 0xFF, 0x1da9f & 0xFF}, {0x1daa1 & 0xFF, 0x1daaf & 0xFF}, + {0x1e000 & 0xFF, 0x1e006 & 0xFF}, + {0x1e008 & 0xFF, 0x1e018 & 0xFF}, + {0x1e01b & 0xFF, 0x1e021 & 0xFF}, + {0x1e023 & 0xFF, 0x1e024 & 0xFF}, + {0x1e026 & 0xFF, 0x1e02a & 0xFF}, + {0x1e100 & 0xFF, 0x1e12c & 0xFF}, + {0x1e130 & 0xFF, 0x1e136 & 0xFF}, + {0x1e137 & 0xFF, 0x1e13d & 0xFF}, + {0x1e140 & 0xFF, 0x1e149 & 0xFF}, + {0x1e14e & 0xFF, 0x1e14f & 0xFF}, + {0x1e2c0 & 0xFF, 0x1e2eb & 0xFF}, + {0x1e2ec & 0xFF, 0x1e2ef & 0xFF}, + {0x1e2f0 & 0xFF, 0x1e2f9 & 0xFF}, + {0x1e2ff & 0xFF, 0x1e2ff & 0xFF}, {0x1e800 & 0xFF, 0x1e8c4 & 0xFF}, {0x1e8c7 & 0xFF, 0x1e8cf & 0xFF}, {0x1e8d0 & 0xFF, 0x1e8d6 & 0xFF}, + {0x1e900 & 0xFF, 0x1e943 & 0xFF}, + {0x1e944 & 0xFF, 0x1e94a & 0xFF}, + {0x1e94b & 0xFF, 0x1e94b & 0xFF}, + {0x1e950 & 0xFF, 0x1e959 & 0xFF}, + {0x1e95e & 0xFF, 0x1e95f & 0xFF}, + {0x1ec71 & 0xFF, 0x1ecab & 0xFF}, + {0x1ecac & 0xFF, 0x1ecac & 0xFF}, + {0x1ecad & 0xFF, 0x1ecaf & 0xFF}, + {0x1ecb0 & 0xFF, 0x1ecb0 & 0xFF}, + {0x1ecb1 & 0xFF, 0x1ecb4 & 0xFF}, + {0x1ed01 & 0xFF, 0x1ed3d & 0xFF}, {0x1ee00 & 0xFF, 0x1ee03 & 0xFF}, {0x1ee05 & 0xFF, 0x1ee1f & 0xFF}, {0x1ee21 & 0xFF, 0x1ee22 & 0xFF}, @@ -2484,36 +2694,56 @@ static const uint8_t unicode_rangetab[][2]={ {0x1eea5 & 0xFF, 0x1eea9 & 0xFF}, {0x1eeab & 0xFF, 0x1eebb & 0xFF}, {0x1eef0 & 0xFF, 0x1eef1 & 0xFF}, - {0x1f000 & 0xFF, 0x1f02b & 0xFF}, - {0x1f030 & 0xFF, 0x1f093 & 0xFF}, - {0x1f0a0 & 0xFF, 0x1f0ae & 0xFF}, - {0x1f0b1 & 0xFF, 0x1f0bf & 0xFF}, - {0x1f0c1 & 0xFF, 0x1f0cf & 0xFF}, - {0x1f0d1 & 0xFF, 0x1f0f5 & 0xFF}, + {0x1f000 & 0xFF, 0x1f0ff & 0xFF}, {0x1f100 & 0xFF, 0x1f10c & 0xFF}, - {0x1f110 & 0xFF, 0x1f12e & 0xFF}, - {0x1f130 & 0xFF, 0x1f16b & 0xFF}, - {0x1f170 & 0xFF, 0x1f19a & 0xFF}, + {0x1f10d & 0xFF, 0x1f10f & 0xFF}, + {0x1f110 & 0xFF, 0x1f16c & 0xFF}, + {0x1f16d & 0xFF, 0x1f16f & 0xFF}, + {0x1f170 & 0xFF, 0x1f1ac & 0xFF}, + {0x1f1ad & 0xFF, 0x1f1e5 & 0xFF}, {0x1f1e6 & 0xFF, 0x1f1ff & 0xFF}, - {0x1f200 & 0xFF, 0x1f202 & 0xFF}, - {0x1f210 & 0xFF, 0x1f23a & 0xFF}, - {0x1f240 & 0xFF, 0x1f248 & 0xFF}, - {0x1f250 & 0xFF, 0x1f251 & 0xFF}, - {0x1f300 & 0xFF, 0x1f39b & 0xFF}, + {0x1f200 & 0xFF, 0x1f2ff & 0xFF}, + {0x1f300 & 0xFF, 0x1f384 & 0xFF}, + {0x1f385 & 0xFF, 0x1f385 & 0xFF}, + {0x1f386 & 0xFF, 0x1f39b & 0xFF}, {0x1f39c & 0xFF, 0x1f39d & 0xFF}, {0x1f39e & 0xFF, 0x1f3b4 & 0xFF}, {0x1f3b5 & 0xFF, 0x1f3b6 & 0xFF}, {0x1f3b7 & 0xFF, 0x1f3bb & 0xFF}, {0x1f3bc & 0xFF, 0x1f3bc & 0xFF}, - {0x1f3bd & 0xFF, 0x1f3fa & 0xFF}, + {0x1f3bd & 0xFF, 0x1f3c1 & 0xFF}, + {0x1f3c2 & 0xFF, 0x1f3c4 & 0xFF}, + {0x1f3c5 & 0xFF, 0x1f3c6 & 0xFF}, + {0x1f3c7 & 0xFF, 0x1f3c7 & 0xFF}, + {0x1f3c8 & 0xFF, 0x1f3c9 & 0xFF}, + {0x1f3ca & 0xFF, 0x1f3cc & 0xFF}, + {0x1f3cd & 0xFF, 0x1f3fa & 0xFF}, {0x1f3fb & 0xFF, 0x1f3ff & 0xFF}, - {0x1f400 & 0xFF, 0x1f49f & 0xFF}, + {0x1f400 & 0xFF, 0x1f441 & 0xFF}, + {0x1f442 & 0xFF, 0x1f443 & 0xFF}, + {0x1f444 & 0xFF, 0x1f445 & 0xFF}, + {0x1f446 & 0xFF, 0x1f450 & 0xFF}, + {0x1f451 & 0xFF, 0x1f465 & 0xFF}, + {0x1f466 & 0xFF, 0x1f478 & 0xFF}, + {0x1f479 & 0xFF, 0x1f47b & 0xFF}, + {0x1f47c & 0xFF, 0x1f47c & 0xFF}, + {0x1f47d & 0xFF, 0x1f480 & 0xFF}, + {0x1f481 & 0xFF, 0x1f483 & 0xFF}, + {0x1f484 & 0xFF, 0x1f484 & 0xFF}, + {0x1f485 & 0xFF, 0x1f487 & 0xFF}, + {0x1f488 & 0xFF, 0x1f48e & 0xFF}, + {0x1f48f & 0xFF, 0x1f48f & 0xFF}, + {0x1f490 & 0xFF, 0x1f490 & 0xFF}, + {0x1f491 & 0xFF, 0x1f491 & 0xFF}, + {0x1f492 & 0xFF, 0x1f49f & 0xFF}, {0x1f4a0 & 0xFF, 0x1f4a0 & 0xFF}, {0x1f4a1 & 0xFF, 0x1f4a1 & 0xFF}, {0x1f4a2 & 0xFF, 0x1f4a2 & 0xFF}, {0x1f4a3 & 0xFF, 0x1f4a3 & 0xFF}, {0x1f4a4 & 0xFF, 0x1f4a4 & 0xFF}, - {0x1f4a5 & 0xFF, 0x1f4ae & 0xFF}, + {0x1f4a5 & 0xFF, 0x1f4a9 & 0xFF}, + {0x1f4aa & 0xFF, 0x1f4aa & 0xFF}, + {0x1f4ab & 0xFF, 0x1f4ae & 0xFF}, {0x1f4af & 0xFF, 0x1f4af & 0xFF}, {0x1f4b0 & 0xFF, 0x1f4b0 & 0xFF}, {0x1f4b1 & 0xFF, 0x1f4b2 & 0xFF}, @@ -2523,31 +2753,84 @@ static const uint8_t unicode_rangetab[][2]={ {0x1f517 & 0xFF, 0x1f524 & 0xFF}, {0x1f525 & 0xFF, 0x1f531 & 0xFF}, {0x1f532 & 0xFF, 0x1f549 & 0xFF}, - {0x1f54a & 0xFF, 0x1f579 & 0xFF}, - {0x1f57b & 0xFF, 0x1f5a3 & 0xFF}, - {0x1f5a5 & 0xFF, 0x1f5d3 & 0xFF}, + {0x1f54a & 0xFF, 0x1f573 & 0xFF}, + {0x1f574 & 0xFF, 0x1f575 & 0xFF}, + {0x1f576 & 0xFF, 0x1f579 & 0xFF}, + {0x1f57a & 0xFF, 0x1f57a & 0xFF}, + {0x1f57b & 0xFF, 0x1f58f & 0xFF}, + {0x1f590 & 0xFF, 0x1f590 & 0xFF}, + {0x1f591 & 0xFF, 0x1f594 & 0xFF}, + {0x1f595 & 0xFF, 0x1f596 & 0xFF}, + {0x1f597 & 0xFF, 0x1f5d3 & 0xFF}, {0x1f5d4 & 0xFF, 0x1f5db & 0xFF}, {0x1f5dc & 0xFF, 0x1f5f3 & 0xFF}, {0x1f5f4 & 0xFF, 0x1f5f9 & 0xFF}, {0x1f5fa & 0xFF, 0x1f5ff & 0xFF}, - {0x1f600 & 0xFF, 0x1f64f & 0xFF}, + {0x1f600 & 0xFF, 0x1f644 & 0xFF}, + {0x1f645 & 0xFF, 0x1f647 & 0xFF}, + {0x1f648 & 0xFF, 0x1f64a & 0xFF}, + {0x1f64b & 0xFF, 0x1f64f & 0xFF}, {0x1f650 & 0xFF, 0x1f675 & 0xFF}, {0x1f676 & 0xFF, 0x1f678 & 0xFF}, {0x1f679 & 0xFF, 0x1f67b & 0xFF}, {0x1f67c & 0xFF, 0x1f67f & 0xFF}, - {0x1f680 & 0xFF, 0x1f6d0 & 0xFF}, - {0x1f6e0 & 0xFF, 0x1f6ec & 0xFF}, - {0x1f6f0 & 0xFF, 0x1f6f3 & 0xFF}, + {0x1f680 & 0xFF, 0x1f6a2 & 0xFF}, + {0x1f6a3 & 0xFF, 0x1f6a3 & 0xFF}, + {0x1f6a4 & 0xFF, 0x1f6b3 & 0xFF}, + {0x1f6b4 & 0xFF, 0x1f6b6 & 0xFF}, + {0x1f6b7 & 0xFF, 0x1f6bf & 0xFF}, + {0x1f6c0 & 0xFF, 0x1f6c0 & 0xFF}, + {0x1f6c1 & 0xFF, 0x1f6cb & 0xFF}, + {0x1f6cc & 0xFF, 0x1f6cc & 0xFF}, + {0x1f6cd & 0xFF, 0x1f6ff & 0xFF}, {0x1f700 & 0xFF, 0x1f773 & 0xFF}, + {0x1f774 & 0xFF, 0x1f77f & 0xFF}, {0x1f780 & 0xFF, 0x1f7d4 & 0xFF}, + {0x1f7d5 & 0xFF, 0x1f7ff & 0xFF}, {0x1f800 & 0xFF, 0x1f80b & 0xFF}, + {0x1f80c & 0xFF, 0x1f80f & 0xFF}, {0x1f810 & 0xFF, 0x1f847 & 0xFF}, + {0x1f848 & 0xFF, 0x1f84f & 0xFF}, {0x1f850 & 0xFF, 0x1f859 & 0xFF}, + {0x1f85a & 0xFF, 0x1f85f & 0xFF}, {0x1f860 & 0xFF, 0x1f887 & 0xFF}, + {0x1f888 & 0xFF, 0x1f88f & 0xFF}, {0x1f890 & 0xFF, 0x1f8ad & 0xFF}, - {0x1f910 & 0xFF, 0x1f918 & 0xFF}, - {0x1f980 & 0xFF, 0x1f984 & 0xFF}, - {0x1f9c0 & 0xFF, 0x1f9c0 & 0xFF}, + {0x1f8ae & 0xFF, 0x1f8ff & 0xFF}, + {0x1f900 & 0xFF, 0x1f90b & 0xFF}, + {0x1f90c & 0xFF, 0x1f90c & 0xFF}, + {0x1f90d & 0xFF, 0x1f90e & 0xFF}, + {0x1f90f & 0xFF, 0x1f90f & 0xFF}, + {0x1f910 & 0xFF, 0x1f917 & 0xFF}, + {0x1f918 & 0xFF, 0x1f91f & 0xFF}, + {0x1f920 & 0xFF, 0x1f925 & 0xFF}, + {0x1f926 & 0xFF, 0x1f926 & 0xFF}, + {0x1f927 & 0xFF, 0x1f92f & 0xFF}, + {0x1f930 & 0xFF, 0x1f939 & 0xFF}, + {0x1f93a & 0xFF, 0x1f93b & 0xFF}, + {0x1f93c & 0xFF, 0x1f93e & 0xFF}, + {0x1f93f & 0xFF, 0x1f976 & 0xFF}, + {0x1f977 & 0xFF, 0x1f977 & 0xFF}, + {0x1f978 & 0xFF, 0x1f9b4 & 0xFF}, + {0x1f9b5 & 0xFF, 0x1f9b6 & 0xFF}, + {0x1f9b7 & 0xFF, 0x1f9b7 & 0xFF}, + {0x1f9b8 & 0xFF, 0x1f9b9 & 0xFF}, + {0x1f9ba & 0xFF, 0x1f9ba & 0xFF}, + {0x1f9bb & 0xFF, 0x1f9bb & 0xFF}, + {0x1f9bc & 0xFF, 0x1f9cc & 0xFF}, + {0x1f9cd & 0xFF, 0x1f9cf & 0xFF}, + {0x1f9d0 & 0xFF, 0x1f9d0 & 0xFF}, + {0x1f9d1 & 0xFF, 0x1f9dd & 0xFF}, + {0x1f9de & 0xFF, 0x1f9ff & 0xFF}, + {0x1fa00 & 0xFF, 0x1fa53 & 0xFF}, + {0x1fa54 & 0xFF, 0x1faff & 0xFF}, + {0x1fb00 & 0xFF, 0x1fb92 & 0xFF}, + {0x1fb94 & 0xFF, 0x1fbca & 0xFF}, + {0x1fbf0 & 0xFF, 0x1fbf9 & 0xFF}, + {0x1fc00 & 0xFF, 0x1fcff & 0xFF}, + {0x1fd00 & 0xFF, 0x1fdff & 0xFF}, + {0x1fe00 & 0xFF, 0x1feff & 0xFF}, + {0x1ff00 & 0xFF, 0x1fffd & 0xFF}, {0x20000 & 0xFF, 0x200ff & 0xFF}, {0x20100 & 0xFF, 0x201ff & 0xFF}, {0x20200 & 0xFF, 0x202ff & 0xFF}, @@ -3148,7 +3431,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, - UNICODE_LB_AL, UNICODE_LB_IS, UNICODE_LB_BA, UNICODE_LB_AL, @@ -3208,6 +3490,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_IS, UNICODE_LB_EX, UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_PR, UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, @@ -3221,6 +3505,10 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_CM, UNICODE_LB_AL, @@ -3258,6 +3546,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_PO, UNICODE_LB_AL, UNICODE_LB_PR, + UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_AL, @@ -3277,6 +3567,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_CM, + UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_AL, @@ -3297,6 +3588,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_PR, UNICODE_LB_AL, UNICODE_LB_CM, + UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, @@ -3348,8 +3640,10 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_NU, + UNICODE_LB_BB, UNICODE_LB_AL, UNICODE_LB_CM, + UNICODE_LB_BB, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, @@ -3370,11 +3664,13 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_CM, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_CM, @@ -3411,16 +3707,9 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_CM, - UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, @@ -3576,6 +3865,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_CM, @@ -3628,6 +3919,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_BA, UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_CM, @@ -3638,6 +3931,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_CM, UNICODE_LB_AL, @@ -3664,6 +3958,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_BA, UNICODE_LB_ZW, UNICODE_LB_CM, + UNICODE_LB_ZWJ, + UNICODE_LB_CM, UNICODE_LB_BA, UNICODE_LB_GL, UNICODE_LB_BA, @@ -3754,6 +4050,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, UNICODE_LB_AL, @@ -3780,15 +4078,19 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_EB, UNICODE_LB_AL, UNICODE_LB_QU, UNICODE_LB_AL, UNICODE_LB_EX, + UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_OP, UNICODE_LB_CL, @@ -3859,9 +4161,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_EX, @@ -3916,6 +4215,12 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_BA, UNICODE_LB_OP, + UNICODE_LB_BA, + UNICODE_LB_AL, + UNICODE_LB_BA, + UNICODE_LB_AL, + UNICODE_LB_BA, + UNICODE_LB_AL, UNICODE_LB_ID, UNICODE_LB_ID, UNICODE_LB_ID, @@ -4005,7 +4310,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_ID, UNICODE_LB_ID, UNICODE_LB_ID, - UNICODE_LB_ID, UNICODE_LB_NS, UNICODE_LB_ID, UNICODE_LB_ID, @@ -4161,6 +4465,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_PO, UNICODE_LB_AL, @@ -4176,6 +4481,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_BB, UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_NU, UNICODE_LB_AL, UNICODE_LB_CM, @@ -5184,15 +5490,15 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_OP, UNICODE_LB_CL, UNICODE_LB_NS, - UNICODE_LB_AL, + UNICODE_LB_ID, UNICODE_LB_NS, - UNICODE_LB_AL, + UNICODE_LB_ID, UNICODE_LB_NS, - UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_AL, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, UNICODE_LB_PO, UNICODE_LB_PR, UNICODE_LB_ID, @@ -5244,6 +5550,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, UNICODE_LB_BA, UNICODE_LB_AL, UNICODE_LB_AL, @@ -5288,6 +5596,19 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_CM, + UNICODE_LB_NU, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_BA, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_BA, @@ -5300,6 +5621,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_BA, UNICODE_LB_AL, + UNICODE_LB_AL, UNICODE_LB_NU, UNICODE_LB_CM, UNICODE_LB_AL, @@ -5309,6 +5631,9 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, UNICODE_LB_BB, UNICODE_LB_AL, UNICODE_LB_CM, @@ -5318,9 +5643,9 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_BA, UNICODE_LB_AL, UNICODE_LB_BA, - UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_NU, UNICODE_LB_AL, UNICODE_LB_BB, @@ -5334,6 +5659,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_BA, UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, @@ -5364,6 +5690,16 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_BA, + UNICODE_LB_AL, + UNICODE_LB_NU, + UNICODE_LB_BA, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, UNICODE_LB_NU, UNICODE_LB_AL, UNICODE_LB_CM, @@ -5380,8 +5716,10 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_BA, UNICODE_LB_AL, UNICODE_LB_NU, + UNICODE_LB_BB, UNICODE_LB_AL, UNICODE_LB_CM, + UNICODE_LB_AL, UNICODE_LB_NU, UNICODE_LB_AL, UNICODE_LB_CM, @@ -5390,10 +5728,94 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_BA, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_NU, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_BA, + UNICODE_LB_NU, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_BB, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_BB, + UNICODE_LB_AL, + UNICODE_LB_BA, + UNICODE_LB_BB, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_BA, + UNICODE_LB_AL, + UNICODE_LB_BB, + UNICODE_LB_BA, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_BA, + UNICODE_LB_NU, + UNICODE_LB_AL, + UNICODE_LB_BB, + UNICODE_LB_EX, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_NU, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_NU, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_PO, + UNICODE_LB_AL, + UNICODE_LB_BA, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, @@ -5420,6 +5842,9 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_CL, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_GL, + UNICODE_LB_OP, + UNICODE_LB_CL, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_OP, @@ -5446,10 +5871,52 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_BA, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_NS, + UNICODE_LB_GL, + UNICODE_LB_CM, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_ID, + UNICODE_LB_NS, + UNICODE_LB_NS, + UNICODE_LB_ID, UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_AL, @@ -5498,6 +5965,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_AL, UNICODE_LB_NU, UNICODE_LB_AL, UNICODE_LB_AL, @@ -5513,10 +5981,35 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_AL, + UNICODE_LB_NU, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_CM, + UNICODE_LB_NU, + UNICODE_LB_PR, + UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_CM, UNICODE_LB_AL, UNICODE_LB_CM, UNICODE_LB_AL, + UNICODE_LB_NU, + UNICODE_LB_OP, + UNICODE_LB_AL, + UNICODE_LB_PO, + UNICODE_LB_AL, + UNICODE_LB_PO, + UNICODE_LB_AL, + UNICODE_LB_AL, + UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_AL, @@ -5551,28 +6044,46 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_AL, UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_RI, UNICODE_LB_ID, UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, UNICODE_LB_AL, + UNICODE_LB_ID, UNICODE_LB_AL, + UNICODE_LB_ID, UNICODE_LB_AL, - UNICODE_LB_AL, - UNICODE_LB_RI, UNICODE_LB_ID, + UNICODE_LB_EB, UNICODE_LB_ID, + UNICODE_LB_EB, UNICODE_LB_ID, + UNICODE_LB_EB, UNICODE_LB_ID, + UNICODE_LB_EM, UNICODE_LB_ID, - UNICODE_LB_AL, + UNICODE_LB_EB, UNICODE_LB_ID, - UNICODE_LB_AL, + UNICODE_LB_EB, UNICODE_LB_ID, - UNICODE_LB_AL, + UNICODE_LB_EB, UNICODE_LB_ID, - UNICODE_LB_AL, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, @@ -5580,6 +6091,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, UNICODE_LB_AL, @@ -5590,27 +6103,80 @@ static const uint8_t unicode_classtab[]={ UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, UNICODE_LB_ID, + UNICODE_LB_EB, UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_ID, UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, UNICODE_LB_AL, UNICODE_LB_QU, UNICODE_LB_NS, UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_AL, UNICODE_LB_ID, + UNICODE_LB_AL, + UNICODE_LB_ID, + UNICODE_LB_AL, + UNICODE_LB_ID, + UNICODE_LB_AL, UNICODE_LB_ID, UNICODE_LB_AL, + UNICODE_LB_ID, UNICODE_LB_AL, + UNICODE_LB_ID, UNICODE_LB_AL, + UNICODE_LB_ID, UNICODE_LB_AL, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, + UNICODE_LB_EB, + UNICODE_LB_ID, UNICODE_LB_AL, + UNICODE_LB_ID, UNICODE_LB_AL, UNICODE_LB_AL, + UNICODE_LB_NU, + UNICODE_LB_ID, UNICODE_LB_ID, UNICODE_LB_ID, UNICODE_LB_ID, @@ -6137,78 +6703,58 @@ static const size_t unicode_indextab[]={ 64, 77, 80, - 100, - 128, - 143, - 157, - 193, - 231, - 269, - 301, - 330, - 362, - 410, - 435, - 438, - 452, - 462, - 464, - 465, - 473, - 497, - 512, - 525, - 535, - 554, - 572, - 575, - 576, - 594, - 652, - 660, + 99, + 127, + 144, + 162, + 200, + 240, + 278, + 312, + 343, + 368, + 416, + 441, + 444, + 458, + 468, + 470, + 471, + 479, + 503, + 520, + 533, + 543, + 562, + 583, + 586, + 587, + 605, 665, + 673, 678, - 681, - 682, - 717, - 754, - 755, - 787, - 788, - 794, - 804, - 821, - 853, - 855, - 937, - 942, - 946, - 947, - 948, - 949, - 950, - 951, - 952, - 953, - 954, - 955, - 956, - 957, - 958, + 691, + 694, + 695, + 734, + 773, + 774, + 806, + 807, + 810, + 820, + 837, + 875, + 877, 959, - 960, - 961, - 962, 963, - 964, - 965, - 966, 967, 968, 969, 970, 971, 972, + 973, 974, 975, 976, @@ -6229,7 +6775,6 @@ static const size_t unicode_indextab[]={ 991, 992, 993, - 994, 995, 996, 997, @@ -6292,357 +6837,249 @@ static const size_t unicode_indextab[]={ 1054, 1055, 1056, + 1057, + 1058, 1059, 1060, 1061, 1062, + 1063, + 1064, + 1065, 1066, 1067, - 1084, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1080, + 1081, + 1082, + 1083, 1087, - 1111, - 1132, - 1159, - 1170, - 1190, - 1209, - 1228, - 1247, - 1266, - 1285, - 1304, - 1324, - 1343, - 1362, - 1381, - 1400, - 1419, - 1438, - 1458, - 1477, - 1496, - 1515, - 1534, - 1553, - 1572, - 1592, - 1611, - 1630, - 1649, - 1668, - 1687, - 1706, - 1726, - 1745, - 1764, - 1783, - 1802, - 1821, - 1840, - 1860, - 1879, - 1898, - 1917, - 1936, - 1955, - 1974, - 1994, - 2007, - 2008, - 2009, - 2010, - 2011, - 2012, - 2013, - 2014, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2015, - 2016, + 1088, + 1105, + 1108, + 1134, + 1155, + 1182, + 1193, + 1213, + 1232, + 1251, + 1270, + 1289, + 1308, + 1327, + 1347, + 1366, + 1385, + 1404, + 1423, + 1442, + 1461, + 1481, + 1500, + 1519, + 1538, + 1557, + 1576, + 1595, + 1615, + 1634, + 1653, + 1672, + 1691, + 1710, + 1729, + 1749, + 1768, + 1787, + 1806, + 1825, + 1844, + 1863, + 1883, + 1902, + 1921, + 1940, + 1959, + 1978, + 1997, 2017, + 2030, 2031, 2032, + 2033, + 2034, + 2035, + 2036, + 2037, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2038, + 2039, 2040, - 2090, - 2136, - 2143, - 2150, - 2154, - 2164, + 2054, + 2055, + 2063, + 2113, + 2159, 2166, - 2169, - 2170, 2173, - 2185, - 2192, + 2177, + 2187, + 2191, + 2194, + 2195, + 2198, 2210, 2217, - 2221, - 2221, - 2222, - 2222, - 2236, - 2262, - 2278, - 2296, - 2300, - 2310, - 2318, - 2324, - 2328, - 2328, - 2329, - 2329, - 2329, - 2329, - 2329, - 2329, - 2330, - 2331, - 2332, - 2333, - 2336, - 2337, - 2337, - 2337, - 2337, - 2337, - 2337, - 2337, - 2337, - 2337, - 2337, - 2337, - 2338, + 2235, + 2242, + 2246, + 2249, + 2254, + 2260, + 2275, + 2304, + 2321, 2339, - 2350, - 2354, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2355, - 2356, - 2360, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2361, - 2362, + 2353, 2363, - 2370, - 2380, - 2380, - 2380, - 2380, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2385, - 2386, - 2386, - 2386, - 2386, - 2386, + 2373, + 2379, 2386, - 2386, - 2386, - 2386, - 2386, - 2386, - 2386, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2394, - 2395, - 2405, 2408, - 2410, - 2420, - 2430, - 2432, - 2434, - 2435, - 2436, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2448, - 2451, - 2451, - 2451, - 2451, - 2451, - 2451, - 2485, - 2485, - 2491, - 2496, - 2500, - 2508, - 2519, - 2531, + 2429, + 2429, + 2442, + 2460, + 2463, + 2468, + 2469, + 2470, + 2471, + 2472, + 2475, + 2476, + 2476, + 2476, + 2476, + 2476, + 2476, + 2476, + 2476, + 2476, + 2476, + 2476, + 2477, + 2478, + 2489, + 2493, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2497, + 2498, + 2502, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2503, + 2504, + 2505, + 2512, + 2522, + 2522, + 2522, + 2525, + 2534, + 2535, + 2536, + 2537, + 2538, 2539, + 2540, 2541, + 2542, + 2543, + 2544, + 2545, 2546, - 2549, - 2549, - 2549, - 2549, - 2549, - 2549, + 2547, + 2548, 2549, 2550, 2551, @@ -6659,269 +7096,115 @@ static const size_t unicode_indextab[]={ 2562, 2563, 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, + 2564, 2565, - 2566, - 2567, - 2568, 2569, 2570, - 2571, - 2572, - 2573, - 2574, - 2575, - 2576, - 2577, + 2570, + 2570, + 2570, + 2570, + 2570, + 2570, + 2570, + 2570, + 2570, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, + 2578, 2578, 2579, - 2580, - 2581, - 2582, - 2583, - 2584, - 2585, - 2586, - 2587, - 2588, 2589, - 2590, - 2591, - 2592, 2593, - 2594, 2595, - 2596, - 2597, - 2598, - 2599, - 2600, - 2601, - 2602, - 2603, - 2604, 2605, - 2606, - 2607, - 2608, - 2609, - 2610, - 2611, - 2612, - 2613, - 2614, 2615, - 2616, 2617, - 2618, 2619, 2620, 2621, - 2622, - 2623, - 2624, - 2625, - 2626, - 2627, - 2628, - 2629, - 2630, - 2631, - 2632, 2633, - 2634, - 2635, - 2636, - 2637, + 2633, + 2633, + 2633, + 2633, + 2633, 2638, - 2639, - 2640, - 2641, - 2642, 2643, - 2644, - 2645, - 2646, 2647, - 2648, - 2649, + 2647, + 2647, + 2647, + 2647, + 2647, 2650, - 2651, - 2652, - 2653, - 2654, 2655, - 2656, - 2657, - 2658, - 2659, + 2655, + 2655, 2660, 2661, - 2662, - 2663, - 2664, - 2665, - 2666, - 2667, - 2668, - 2669, - 2670, - 2671, - 2672, - 2673, - 2674, - 2675, - 2676, - 2677, - 2678, - 2679, - 2680, - 2681, - 2682, - 2683, - 2684, - 2685, - 2686, - 2687, - 2688, - 2689, - 2690, - 2691, - 2692, - 2693, - 2694, + 2695, 2695, 2696, - 2697, - 2698, - 2699, - 2700, - 2701, - 2702, 2703, 2704, - 2705, - 2706, - 2707, - 2708, - 2709, - 2710, - 2711, - 2712, - 2713, - 2714, - 2715, - 2716, - 2717, - 2718, - 2719, 2720, - 2721, - 2722, - 2723, - 2724, - 2725, - 2726, - 2727, - 2728, - 2729, - 2730, - 2731, - 2732, - 2733, - 2734, - 2735, - 2736, - 2737, - 2738, - 2739, - 2740, - 2741, - 2742, - 2743, - 2744, - 2745, - 2746, - 2747, - 2748, 2749, - 2750, - 2751, - 2752, - 2753, - 2754, - 2755, - 2756, - 2757, - 2758, - 2759, - 2760, - 2761, - 2762, - 2763, - 2764, - 2765, - 2766, 2767, - 2768, - 2769, - 2770, - 2771, - 2772, - 2773, - 2774, - 2775, - 2776, - 2777, - 2778, - 2779, - 2780, - 2781, - 2782, - 2783, 2784, - 2785, - 2786, - 2787, 2788, - 2789, - 2790, - 2791, - 2792, - 2793, - 2794, - 2795, - 2796, - 2797, 2798, - 2799, - 2800, - 2801, - 2802, - 2803, - 2804, - 2805, - 2806, - 2807, - 2808, - 2809, - 2810, - 2811, - 2812, - 2813, - 2814, - 2815, - 2816, - 2817, - 2818, - 2819, - 2820, - 2821, - 2822, 2823, - 2824, 2825, - 2826, - 2827, 2828, 2829, 2830, @@ -7156,2566 +7439,2849 @@ static const size_t unicode_indextab[]={ 3059, 3060, 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, - 3061, + 3062, 3063, - 3064}; + 3064, + 3065, + 3066, + 3067, + 3068, + 3069, + 3070, + 3071, + 3072, + 3073, + 3074, + 3075, + 3076, + 3077, + 3078, + 3079, + 3080, + 3081, + 3082, + 3083, + 3084, + 3085, + 3086, + 3087, + 3088, + 3089, + 3090, + 3091, + 3092, + 3093, + 3094, + 3095, + 3096, + 3097, + 3098, + 3099, + 3100, + 3101, + 3102, + 3103, + 3104, + 3105, + 3106, + 3107, + 3108, + 3109, + 3110, + 3111, + 3112, + 3113, + 3114, + 3115, + 3116, + 3117, + 3118, + 3119, + 3120, + 3121, + 3122, + 3123, + 3124, + 3125, + 3126, + 3127, + 3128, + 3129, + 3130, + 3131, + 3132, + 3133, + 3134, + 3135, + 3136, + 3137, + 3138, + 3139, + 3140, + 3141, + 3142, + 3143, + 3144, + 3145, + 3146, + 3147, + 3148, + 3149, + 3150, + 3151, + 3152, + 3153, + 3154, + 3155, + 3156, + 3157, + 3158, + 3159, + 3160, + 3161, + 3162, + 3163, + 3164, + 3165, + 3166, + 3167, + 3168, + 3169, + 3170, + 3171, + 3172, + 3173, + 3174, + 3175, + 3176, + 3177, + 3178, + 3179, + 3180, + 3181, + 3182, + 3183, + 3184, + 3185, + 3186, + 3187, + 3188, + 3189, + 3190, + 3191, + 3192, + 3193, + 3194, + 3195, + 3196, + 3197, + 3198, + 3199, + 3200, + 3201, + 3202, + 3203, + 3204, + 3205, + 3206, + 3207, + 3208, + 3209, + 3210, + 3211, + 3212, + 3213, + 3214, + 3215, + 3216, + 3217, + 3218, + 3219, + 3220, + 3221, + 3222, + 3223, + 3224, + 3225, + 3226, + 3227, + 3228, + 3229, + 3230, + 3231, + 3232, + 3233, + 3234, + 3235, + 3236, + 3237, + 3238, + 3239, + 3240, + 3241, + 3242, + 3243, + 3244, + 3245, + 3246, + 3247, + 3248, + 3249, + 3250, + 3251, + 3252, + 3253, + 3254, + 3255, + 3256, + 3257, + 3258, + 3259, + 3260, + 3261, + 3262, + 3263, + 3264, + 3265, + 3266, + 3267, + 3268, + 3269, + 3270, + 3271, + 3272, + 3273, + 3274, + 3275, + 3276, + 3277, + 3278, + 3279, + 3280, + 3281, + 3282, + 3283, + 3284, + 3285, + 3286, + 3287, + 3288, + 3289, + 3290, + 3291, + 3292, + 3293, + 3294, + 3295, + 3296, + 3297, + 3298, + 3299, + 3300, + 3301, + 3302, + 3303, + 3304, + 3305, + 3306, + 3307, + 3308, + 3309, + 3310, + 3311, + 3312, + 3313, + 3314, + 3315, + 3316, + 3317, + 3318, + 3319, + 3320, + 3321, + 3322, + 3323, + 3324, + 3325, + 3326, + 3327, + 3328, + 3329, + 3330, + 3331, + 3332, + 3333, + 3334, + 3335, + 3336, + 3337, + 3338, + 3339, + 3340, + 3341, + 3342, + 3343, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3344, + 3346, + 3347}; diff --git a/unicode/linebreaktab_internal.h b/unicode/linebreaktab_internal.h index 56beed0..17b77f1 100644 --- a/unicode/linebreaktab_internal.h +++ b/unicode/linebreaktab_internal.h @@ -45,6 +45,9 @@ #define UNICODE_LB_JT 0x48 #define UNICODE_LB_RI 0x49 #define UNICODE_LB_SA 0x4A +#define UNICODE_LB_EB 0x4B +#define UNICODE_LB_EM 0x4C +#define UNICODE_LB_ZWJ 0x4D extern int unicode_lb_lookup(char32_t ch); diff --git a/unicode/linebreaktest.C b/unicode/linebreaktest.C index effd7f4..84ff83d 100644 --- a/unicode/linebreaktest.C +++ b/unicode/linebreaktest.C @@ -127,6 +127,7 @@ static void testsuite() std::cerr << "Regression, line " << linenum << ": " << buf << std::endl; flag=1; + exit(1); } } diff --git a/unicode/mkeastasianwidth.pl b/unicode/mkeastasianwidth.pl index d34f064..862fa7a 100644 --- a/unicode/mkeastasianwidth.pl +++ b/unicode/mkeastasianwidth.pl @@ -3,50 +3,78 @@ # USAGE: perl mkeastasianwidth.pl > charwidth.c use IO::File; +use strict; +use warnings; -my $fh=new IO::File "<EastAsianWidth.txt"; +foreach my $pass ( -my $pb=-1; -my $pe=-1; + { + header => "char32_t unicode_eastasia_tab[][2]", + emit => sub { + my ($pb, $pe, $pv) = @_; -print "static const char32_t unicode_wcwidth_tab[][2]={\n"; + printf ("{0x%04x, 0x%04x},\n", $pb, $pe); + }, + }, + { + header => "unicode_eastasia_t unicode_eastasia_v[]", + emit => sub { + my ($pb, $pe, $pv) = @_; -sub full($$) { - my $b=hex(shift); - my $e=hex(shift); + printf ("UNICODE_EASTASIA_%s,\n", $pv); + }, + }) +{ + my $emit = $pass->{emit}; - if ($b == $pe+1) - { - $pe=$e; - return; - } - printf ("{0x%04x, 0x%04x},\n", $pb, $pe) unless $pb < 0; + my $fh=new IO::File "<EastAsianWidth.txt"; - $pb=$b; - $pe=$e; -} + my $pb=-1; + my $pe=-1; + my $pv=""; + print "static const " . $pass->{header} . "={\n"; -while (defined($_=<$fh>)) -{ - chomp; - s/#.*//; + my $full = sub { + my $b=hex(shift); + my $e=hex(shift); + my $v=shift; - my @w=split(/;/); + if ($b == $pe+1 && $v eq $pv) + { + $pe=$e; + return; + } - grep {s/^\s*//; s/\s*$//; } @w; + $emit->($pb, $pe, $pv) unless $pb < 0; - next unless $w[1] eq "F" || $w[1] eq "W"; + $pb=$b; + $pe=$e; + $pv=$v; + }; - if ($w[0] =~ /(.*)\.\.(.*)/) - { - full($1, $2); - } - else + + while (defined($_=<$fh>)) { - full($w[0], $w[0]); + chomp; + s/#.*//; + + my @w=split(/;/); + + next unless @w; + grep {s/^\s*//; s/\s*$//; } @w; + + if ($w[0] =~ /(.*)\.\.(.*)/) + { + $full->($1, $2, $w[1]); + } + else + { + $full->($w[0], $w[0], $w[1]); + } } -} -printf ("{0x%04x, 0x%04x}\n};\n", $pb, $pe); + $emit->($pb, $pe, $pv); + print "};\n\n"; +} diff --git a/unicode/mkemojidata.pl b/unicode/mkemojidata.pl new file mode 100644 index 0000000..45296c8 --- /dev/null +++ b/unicode/mkemojidata.pl @@ -0,0 +1,51 @@ +#! /usr/bin/perl +# +# Compile emoji-data.txt into C array declarations. +# +# The arrays' structure is [firstchar, lastchar], listing the emojis with the +# given property. + +use strict; +use warnings; + +open(F, "<emoji-data.txt") || die; + +my $curclass; +my $lastl; + +while (defined($_=<F>)) +{ + chomp; + + next unless /^([0-9A-F]+)(\.\.([0-9A-F]+))?\s*\;\s*([^\s#]+)\s*/; + + my $f=$1; + my $l=$3; + my $t=$4; + + $l=$f unless $l; + + eval "\$f=0x$f"; + eval "\$l=0x$l"; + + if ((! defined $curclass) || $t ne $curclass) + { + if (defined $curclass) + { + print "};\n\n"; + } + + $curclass = $t; + + print "static const char32_t unicode_emoji_" . lc($curclass) + . "_lookup[][2]={\n"; + } + else + { + die "Not sorted\n" unless $l > $lastl; + } + print "\t{$f, $l},\n"; + + $lastl=$l; +} +print "};\n\n"; diff --git a/unicode/mklinebreak.pl b/unicode/mklinebreak.pl index 4268cae..fb8b216 100644 --- a/unicode/mklinebreak.pl +++ b/unicode/mklinebreak.pl @@ -47,7 +47,7 @@ while (defined($_=<F>)) { chomp; - next unless /^([0-9A-F]+)(\.\.([0-9A-F]+))?\;([^\s][^\s])\s*/; + next unless /^([0-9A-F]+)(\.\.([0-9A-F]+))?\;([^\s]+)\s*/; my $f=$1; my $l=$3; diff --git a/unicode/scriptstab.h b/unicode/scriptstab.h index a285087..74137ff 100644 --- a/unicode/scriptstab.h +++ b/unicode/scriptstab.h @@ -42,20 +42,18 @@ static const uint8_t unicode_rangetab[][2]={ {0x0487 & 0xFF, 0x04ff & 0xFF}, {0x0500 & 0xFF, 0x052f & 0xFF}, {0x0531 & 0xFF, 0x0556 & 0xFF}, - {0x0559 & 0xFF, 0x055f & 0xFF}, - {0x0561 & 0xFF, 0x0587 & 0xFF}, - {0x0589 & 0xFF, 0x0589 & 0xFF}, - {0x058a & 0xFF, 0x058a & 0xFF}, + {0x0559 & 0xFF, 0x058a & 0xFF}, {0x058d & 0xFF, 0x058f & 0xFF}, {0x0591 & 0xFF, 0x05c7 & 0xFF}, {0x05d0 & 0xFF, 0x05ea & 0xFF}, - {0x05f0 & 0xFF, 0x05f4 & 0xFF}, + {0x05ef & 0xFF, 0x05f4 & 0xFF}, {0x0600 & 0xFF, 0x0604 & 0xFF}, {0x0605 & 0xFF, 0x0605 & 0xFF}, {0x0606 & 0xFF, 0x060b & 0xFF}, {0x060c & 0xFF, 0x060c & 0xFF}, {0x060d & 0xFF, 0x061a & 0xFF}, - {0x061b & 0xFF, 0x061c & 0xFF}, + {0x061b & 0xFF, 0x061b & 0xFF}, + {0x061c & 0xFF, 0x061c & 0xFF}, {0x061e & 0xFF, 0x061e & 0xFF}, {0x061f & 0xFF, 0x061f & 0xFF}, {0x0620 & 0xFF, 0x063f & 0xFF}, @@ -73,15 +71,20 @@ static const uint8_t unicode_rangetab[][2]={ {0x0750 & 0xFF, 0x077f & 0xFF}, {0x0780 & 0xFF, 0x07b1 & 0xFF}, {0x07c0 & 0xFF, 0x07fa & 0xFF}, + {0x07fd & 0xFF, 0x07ff & 0xFF}, {0x0800 & 0xFF, 0x082d & 0xFF}, {0x0830 & 0xFF, 0x083e & 0xFF}, {0x0840 & 0xFF, 0x085b & 0xFF}, {0x085e & 0xFF, 0x085e & 0xFF}, + {0x0860 & 0xFF, 0x086a & 0xFF}, {0x08a0 & 0xFF, 0x08b4 & 0xFF}, + {0x08b6 & 0xFF, 0x08c7 & 0xFF}, + {0x08d3 & 0xFF, 0x08e1 & 0xFF}, + {0x08e2 & 0xFF, 0x08e2 & 0xFF}, {0x08e3 & 0xFF, 0x08ff & 0xFF}, {0x0900 & 0xFF, 0x0950 & 0xFF}, - {0x0951 & 0xFF, 0x0952 & 0xFF}, - {0x0953 & 0xFF, 0x0963 & 0xFF}, + {0x0951 & 0xFF, 0x0954 & 0xFF}, + {0x0955 & 0xFF, 0x0963 & 0xFF}, {0x0964 & 0xFF, 0x0965 & 0xFF}, {0x0966 & 0xFF, 0x097f & 0xFF}, {0x0980 & 0xFF, 0x0983 & 0xFF}, @@ -97,7 +100,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x09d7 & 0xFF, 0x09d7 & 0xFF}, {0x09dc & 0xFF, 0x09dd & 0xFF}, {0x09df & 0xFF, 0x09e3 & 0xFF}, - {0x09e6 & 0xFF, 0x09fb & 0xFF}, + {0x09e6 & 0xFF, 0x09fe & 0xFF}, {0x0a01 & 0xFF, 0x0a03 & 0xFF}, {0x0a05 & 0xFF, 0x0a0a & 0xFF}, {0x0a0f & 0xFF, 0x0a10 & 0xFF}, @@ -113,7 +116,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0a51 & 0xFF, 0x0a51 & 0xFF}, {0x0a59 & 0xFF, 0x0a5c & 0xFF}, {0x0a5e & 0xFF, 0x0a5e & 0xFF}, - {0x0a66 & 0xFF, 0x0a75 & 0xFF}, + {0x0a66 & 0xFF, 0x0a76 & 0xFF}, {0x0a81 & 0xFF, 0x0a83 & 0xFF}, {0x0a85 & 0xFF, 0x0a8d & 0xFF}, {0x0a8f & 0xFF, 0x0a91 & 0xFF}, @@ -127,7 +130,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0ad0 & 0xFF, 0x0ad0 & 0xFF}, {0x0ae0 & 0xFF, 0x0ae3 & 0xFF}, {0x0ae6 & 0xFF, 0x0af1 & 0xFF}, - {0x0af9 & 0xFF, 0x0af9 & 0xFF}, + {0x0af9 & 0xFF, 0x0aff & 0xFF}, {0x0b01 & 0xFF, 0x0b03 & 0xFF}, {0x0b05 & 0xFF, 0x0b0c & 0xFF}, {0x0b0f & 0xFF, 0x0b10 & 0xFF}, @@ -138,7 +141,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0b3c & 0xFF, 0x0b44 & 0xFF}, {0x0b47 & 0xFF, 0x0b48 & 0xFF}, {0x0b4b & 0xFF, 0x0b4d & 0xFF}, - {0x0b56 & 0xFF, 0x0b57 & 0xFF}, + {0x0b55 & 0xFF, 0x0b57 & 0xFF}, {0x0b5c & 0xFF, 0x0b5d & 0xFF}, {0x0b5f & 0xFF, 0x0b63 & 0xFF}, {0x0b66 & 0xFF, 0x0b77 & 0xFF}, @@ -158,8 +161,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0bd0 & 0xFF, 0x0bd0 & 0xFF}, {0x0bd7 & 0xFF, 0x0bd7 & 0xFF}, {0x0be6 & 0xFF, 0x0bfa & 0xFF}, - {0x0c00 & 0xFF, 0x0c03 & 0xFF}, - {0x0c05 & 0xFF, 0x0c0c & 0xFF}, + {0x0c00 & 0xFF, 0x0c0c & 0xFF}, {0x0c0e & 0xFF, 0x0c10 & 0xFF}, {0x0c12 & 0xFF, 0x0c28 & 0xFF}, {0x0c2a & 0xFF, 0x0c39 & 0xFF}, @@ -170,9 +172,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x0c58 & 0xFF, 0x0c5a & 0xFF}, {0x0c60 & 0xFF, 0x0c63 & 0xFF}, {0x0c66 & 0xFF, 0x0c6f & 0xFF}, - {0x0c78 & 0xFF, 0x0c7f & 0xFF}, - {0x0c81 & 0xFF, 0x0c83 & 0xFF}, - {0x0c85 & 0xFF, 0x0c8c & 0xFF}, + {0x0c77 & 0xFF, 0x0c7f & 0xFF}, + {0x0c80 & 0xFF, 0x0c8c & 0xFF}, {0x0c8e & 0xFF, 0x0c90 & 0xFF}, {0x0c92 & 0xFF, 0x0ca8 & 0xFF}, {0x0caa & 0xFF, 0x0cb3 & 0xFF}, @@ -185,18 +186,14 @@ static const uint8_t unicode_rangetab[][2]={ {0x0ce0 & 0xFF, 0x0ce3 & 0xFF}, {0x0ce6 & 0xFF, 0x0cef & 0xFF}, {0x0cf1 & 0xFF, 0x0cf2 & 0xFF}, - {0x0d01 & 0xFF, 0x0d03 & 0xFF}, - {0x0d05 & 0xFF, 0x0d0c & 0xFF}, + {0x0d00 & 0xFF, 0x0d0c & 0xFF}, {0x0d0e & 0xFF, 0x0d10 & 0xFF}, - {0x0d12 & 0xFF, 0x0d3a & 0xFF}, - {0x0d3d & 0xFF, 0x0d44 & 0xFF}, + {0x0d12 & 0xFF, 0x0d44 & 0xFF}, {0x0d46 & 0xFF, 0x0d48 & 0xFF}, - {0x0d4a & 0xFF, 0x0d4e & 0xFF}, - {0x0d57 & 0xFF, 0x0d57 & 0xFF}, - {0x0d5f & 0xFF, 0x0d63 & 0xFF}, - {0x0d66 & 0xFF, 0x0d75 & 0xFF}, - {0x0d79 & 0xFF, 0x0d7f & 0xFF}, - {0x0d82 & 0xFF, 0x0d83 & 0xFF}, + {0x0d4a & 0xFF, 0x0d4f & 0xFF}, + {0x0d54 & 0xFF, 0x0d63 & 0xFF}, + {0x0d66 & 0xFF, 0x0d7f & 0xFF}, + {0x0d81 & 0xFF, 0x0d83 & 0xFF}, {0x0d85 & 0xFF, 0x0d96 & 0xFF}, {0x0d9a & 0xFF, 0x0db1 & 0xFF}, {0x0db3 & 0xFF, 0x0dbb & 0xFF}, @@ -213,17 +210,10 @@ static const uint8_t unicode_rangetab[][2]={ {0x0e40 & 0xFF, 0x0e5b & 0xFF}, {0x0e81 & 0xFF, 0x0e82 & 0xFF}, {0x0e84 & 0xFF, 0x0e84 & 0xFF}, - {0x0e87 & 0xFF, 0x0e88 & 0xFF}, - {0x0e8a & 0xFF, 0x0e8a & 0xFF}, - {0x0e8d & 0xFF, 0x0e8d & 0xFF}, - {0x0e94 & 0xFF, 0x0e97 & 0xFF}, - {0x0e99 & 0xFF, 0x0e9f & 0xFF}, - {0x0ea1 & 0xFF, 0x0ea3 & 0xFF}, + {0x0e86 & 0xFF, 0x0e8a & 0xFF}, + {0x0e8c & 0xFF, 0x0ea3 & 0xFF}, {0x0ea5 & 0xFF, 0x0ea5 & 0xFF}, - {0x0ea7 & 0xFF, 0x0ea7 & 0xFF}, - {0x0eaa & 0xFF, 0x0eab & 0xFF}, - {0x0ead & 0xFF, 0x0eb9 & 0xFF}, - {0x0ebb & 0xFF, 0x0ebd & 0xFF}, + {0x0ea7 & 0xFF, 0x0ebd & 0xFF}, {0x0ec0 & 0xFF, 0x0ec4 & 0xFF}, {0x0ec6 & 0xFF, 0x0ec6 & 0xFF}, {0x0ec8 & 0xFF, 0x0ecd & 0xFF}, @@ -290,7 +280,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1805 & 0xFF, 0x1805 & 0xFF}, {0x1806 & 0xFF, 0x180e & 0xFF}, {0x1810 & 0xFF, 0x1819 & 0xFF}, - {0x1820 & 0xFF, 0x1877 & 0xFF}, + {0x1820 & 0xFF, 0x1878 & 0xFF}, {0x1880 & 0xFF, 0x18aa & 0xFF}, {0x18b0 & 0xFF, 0x18f5 & 0xFF}, {0x1900 & 0xFF, 0x191e & 0xFF}, @@ -312,7 +302,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1a7f & 0xFF, 0x1a89 & 0xFF}, {0x1a90 & 0xFF, 0x1a99 & 0xFF}, {0x1aa0 & 0xFF, 0x1aad & 0xFF}, - {0x1ab0 & 0xFF, 0x1abe & 0xFF}, + {0x1ab0 & 0xFF, 0x1ac0 & 0xFF}, {0x1b00 & 0xFF, 0x1b4b & 0xFF}, {0x1b50 & 0xFF, 0x1b7c & 0xFF}, {0x1b80 & 0xFF, 0x1bbf & 0xFF}, @@ -322,6 +312,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x1c3b & 0xFF, 0x1c49 & 0xFF}, {0x1c4d & 0xFF, 0x1c4f & 0xFF}, {0x1c50 & 0xFF, 0x1c7f & 0xFF}, + {0x1c80 & 0xFF, 0x1c88 & 0xFF}, + {0x1c90 & 0xFF, 0x1cba & 0xFF}, + {0x1cbd & 0xFF, 0x1cbf & 0xFF}, {0x1cc0 & 0xFF, 0x1cc7 & 0xFF}, {0x1cd0 & 0xFF, 0x1cd2 & 0xFF}, {0x1cd3 & 0xFF, 0x1cd3 & 0xFF}, @@ -332,8 +325,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x1ced & 0xFF, 0x1ced & 0xFF}, {0x1cee & 0xFF, 0x1cf3 & 0xFF}, {0x1cf4 & 0xFF, 0x1cf4 & 0xFF}, - {0x1cf5 & 0xFF, 0x1cf6 & 0xFF}, + {0x1cf5 & 0xFF, 0x1cf7 & 0xFF}, {0x1cf8 & 0xFF, 0x1cf9 & 0xFF}, + {0x1cfa & 0xFF, 0x1cfa & 0xFF}, {0x1d00 & 0xFF, 0x1d25 & 0xFF}, {0x1d26 & 0xFF, 0x1d2a & 0xFF}, {0x1d2b & 0xFF, 0x1d2b & 0xFF}, @@ -345,8 +339,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x1d78 & 0xFF, 0x1d78 & 0xFF}, {0x1d79 & 0xFF, 0x1dbe & 0xFF}, {0x1dbf & 0xFF, 0x1dbf & 0xFF}, - {0x1dc0 & 0xFF, 0x1df5 & 0xFF}, - {0x1dfc & 0xFF, 0x1dff & 0xFF}, + {0x1dc0 & 0xFF, 0x1df9 & 0xFF}, + {0x1dfb & 0xFF, 0x1dff & 0xFF}, {0x1e00 & 0xFF, 0x1eff & 0xFF}, {0x1f00 & 0xFF, 0x1f15 & 0xFF}, {0x1f18 & 0xFF, 0x1f1d & 0xFF}, @@ -373,7 +367,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x207f & 0xFF, 0x207f & 0xFF}, {0x2080 & 0xFF, 0x208e & 0xFF}, {0x2090 & 0xFF, 0x209c & 0xFF}, - {0x20a0 & 0xFF, 0x20be & 0xFF}, + {0x20a0 & 0xFF, 0x20bf & 0xFF}, {0x20d0 & 0xFF, 0x20f0 & 0xFF}, {0x2100 & 0xFF, 0x2125 & 0xFF}, {0x2126 & 0xFF, 0x2126 & 0xFF}, @@ -388,7 +382,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x2189 & 0xFF, 0x218b & 0xFF}, {0x2190 & 0xFF, 0x21ff & 0xFF}, {0x2200 & 0xFF, 0x22ff & 0xFF}, - {0x2300 & 0xFF, 0x23fa & 0xFF}, + {0x2300 & 0xFF, 0x23ff & 0xFF}, {0x2400 & 0xFF, 0x2426 & 0xFF}, {0x2440 & 0xFF, 0x244a & 0xFF}, {0x2460 & 0xFF, 0x24ff & 0xFF}, @@ -400,10 +394,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x2a00 & 0xFF, 0x2aff & 0xFF}, {0x2b00 & 0xFF, 0x2b73 & 0xFF}, {0x2b76 & 0xFF, 0x2b95 & 0xFF}, - {0x2b98 & 0xFF, 0x2bb9 & 0xFF}, - {0x2bbd & 0xFF, 0x2bc8 & 0xFF}, - {0x2bca & 0xFF, 0x2bd1 & 0xFF}, - {0x2bec & 0xFF, 0x2bef & 0xFF}, + {0x2b97 & 0xFF, 0x2bff & 0xFF}, {0x2c00 & 0xFF, 0x2c2e & 0xFF}, {0x2c30 & 0xFF, 0x2c5e & 0xFF}, {0x2c60 & 0xFF, 0x2c7f & 0xFF}, @@ -425,7 +416,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x2dd0 & 0xFF, 0x2dd6 & 0xFF}, {0x2dd8 & 0xFF, 0x2dde & 0xFF}, {0x2de0 & 0xFF, 0x2dff & 0xFF}, - {0x2e00 & 0xFF, 0x2e42 & 0xFF}, + {0x2e00 & 0xFF, 0x2e52 & 0xFF}, {0x2e80 & 0xFF, 0x2e99 & 0xFF}, {0x2e9b & 0xFF, 0x2ef3 & 0xFF}, {0x2f00 & 0xFF, 0x2fd5 & 0xFF}, @@ -449,10 +440,10 @@ static const uint8_t unicode_rangetab[][2]={ {0x30a1 & 0xFF, 0x30fa & 0xFF}, {0x30fb & 0xFF, 0x30fc & 0xFF}, {0x30fd & 0xFF, 0x30ff & 0xFF}, - {0x3105 & 0xFF, 0x312d & 0xFF}, + {0x3105 & 0xFF, 0x312f & 0xFF}, {0x3131 & 0xFF, 0x318e & 0xFF}, {0x3190 & 0xFF, 0x319f & 0xFF}, - {0x31a0 & 0xFF, 0x31ba & 0xFF}, + {0x31a0 & 0xFF, 0x31bf & 0xFF}, {0x31c0 & 0xFF, 0x31e3 & 0xFF}, {0x31f0 & 0xFF, 0x31ff & 0xFF}, {0x3200 & 0xFF, 0x321e & 0xFF}, @@ -460,6 +451,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x3260 & 0xFF, 0x327e & 0xFF}, {0x327f & 0xFF, 0x32cf & 0xFF}, {0x32d0 & 0xFF, 0x32fe & 0xFF}, + {0x32ff & 0xFF, 0x32ff & 0xFF}, {0x3300 & 0xFF, 0x3357 & 0xFF}, {0x3358 & 0xFF, 0x33ff & 0xFF}, {0x3400 & 0xFF, 0x34ff & 0xFF}, @@ -487,7 +479,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x4a00 & 0xFF, 0x4aff & 0xFF}, {0x4b00 & 0xFF, 0x4bff & 0xFF}, {0x4c00 & 0xFF, 0x4cff & 0xFF}, - {0x4d00 & 0xFF, 0x4db5 & 0xFF}, + {0x4d00 & 0xFF, 0x4dbf & 0xFF}, {0x4dc0 & 0xFF, 0x4dff & 0xFF}, {0x4e00 & 0xFF, 0x4eff & 0xFF}, {0x4f00 & 0xFF, 0x4fff & 0xFF}, @@ -570,7 +562,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x9c00 & 0xFF, 0x9cff & 0xFF}, {0x9d00 & 0xFF, 0x9dff & 0xFF}, {0x9e00 & 0xFF, 0x9eff & 0xFF}, - {0x9f00 & 0xFF, 0x9fd5 & 0xFF}, + {0x9f00 & 0xFF, 0x9ffc & 0xFF}, {0xa000 & 0xFF, 0xa0ff & 0xFF}, {0xa100 & 0xFF, 0xa1ff & 0xFF}, {0xa200 & 0xFF, 0xa2ff & 0xFF}, @@ -585,15 +577,15 @@ static const uint8_t unicode_rangetab[][2]={ {0xa700 & 0xFF, 0xa721 & 0xFF}, {0xa722 & 0xFF, 0xa787 & 0xFF}, {0xa788 & 0xFF, 0xa78a & 0xFF}, - {0xa78b & 0xFF, 0xa7ad & 0xFF}, - {0xa7b0 & 0xFF, 0xa7b7 & 0xFF}, - {0xa7f7 & 0xFF, 0xa7ff & 0xFF}, - {0xa800 & 0xFF, 0xa82b & 0xFF}, + {0xa78b & 0xFF, 0xa7bf & 0xFF}, + {0xa7c2 & 0xFF, 0xa7ca & 0xFF}, + {0xa7f5 & 0xFF, 0xa7ff & 0xFF}, + {0xa800 & 0xFF, 0xa82c & 0xFF}, {0xa830 & 0xFF, 0xa839 & 0xFF}, {0xa840 & 0xFF, 0xa877 & 0xFF}, - {0xa880 & 0xFF, 0xa8c4 & 0xFF}, + {0xa880 & 0xFF, 0xa8c5 & 0xFF}, {0xa8ce & 0xFF, 0xa8d9 & 0xFF}, - {0xa8e0 & 0xFF, 0xa8fd & 0xFF}, + {0xa8e0 & 0xFF, 0xa8ff & 0xFF}, {0xa900 & 0xFF, 0xa92d & 0xFF}, {0xa92e & 0xFF, 0xa92e & 0xFF}, {0xa92f & 0xFF, 0xa92f & 0xFF}, @@ -622,6 +614,8 @@ static const uint8_t unicode_rangetab[][2]={ {0xab5b & 0xFF, 0xab5b & 0xFF}, {0xab5c & 0xFF, 0xab64 & 0xFF}, {0xab65 & 0xFF, 0xab65 & 0xFF}, + {0xab66 & 0xFF, 0xab69 & 0xFF}, + {0xab6a & 0xFF, 0xab6b & 0xFF}, {0xab70 & 0xFF, 0xabbf & 0xFF}, {0xabc0 & 0xFF, 0xabed & 0xFF}, {0xabf0 & 0xFF, 0xabf9 & 0xFF}, @@ -727,8 +721,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x10100 & 0xFF, 0x10102 & 0xFF}, {0x10107 & 0xFF, 0x10133 & 0xFF}, {0x10137 & 0xFF, 0x1013f & 0xFF}, - {0x10140 & 0xFF, 0x1018c & 0xFF}, - {0x10190 & 0xFF, 0x1019b & 0xFF}, + {0x10140 & 0xFF, 0x1018e & 0xFF}, + {0x10190 & 0xFF, 0x1019c & 0xFF}, {0x101a0 & 0xFF, 0x101a0 & 0xFF}, {0x101d0 & 0xFF, 0x101fc & 0xFF}, {0x101fd & 0xFF, 0x101fd & 0xFF}, @@ -737,6 +731,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x102e0 & 0xFF, 0x102e0 & 0xFF}, {0x102e1 & 0xFF, 0x102fb & 0xFF}, {0x10300 & 0xFF, 0x10323 & 0xFF}, + {0x1032d & 0xFF, 0x1032f & 0xFF}, {0x10330 & 0xFF, 0x1034a & 0xFF}, {0x10350 & 0xFF, 0x1037a & 0xFF}, {0x10380 & 0xFF, 0x1039d & 0xFF}, @@ -747,6 +742,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x10450 & 0xFF, 0x1047f & 0xFF}, {0x10480 & 0xFF, 0x1049d & 0xFF}, {0x104a0 & 0xFF, 0x104a9 & 0xFF}, + {0x104b0 & 0xFF, 0x104d3 & 0xFF}, + {0x104d8 & 0xFF, 0x104fb & 0xFF}, {0x10500 & 0xFF, 0x10527 & 0xFF}, {0x10530 & 0xFF, 0x10563 & 0xFF}, {0x1056f & 0xFF, 0x1056f & 0xFF}, @@ -780,9 +777,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x10a05 & 0xFF, 0x10a06 & 0xFF}, {0x10a0c & 0xFF, 0x10a13 & 0xFF}, {0x10a15 & 0xFF, 0x10a17 & 0xFF}, - {0x10a19 & 0xFF, 0x10a33 & 0xFF}, + {0x10a19 & 0xFF, 0x10a35 & 0xFF}, {0x10a38 & 0xFF, 0x10a3a & 0xFF}, - {0x10a3f & 0xFF, 0x10a47 & 0xFF}, + {0x10a3f & 0xFF, 0x10a48 & 0xFF}, {0x10a50 & 0xFF, 0x10a58 & 0xFF}, {0x10a60 & 0xFF, 0x10a7f & 0xFF}, {0x10a80 & 0xFF, 0x10a9f & 0xFF}, @@ -801,21 +798,30 @@ static const uint8_t unicode_rangetab[][2]={ {0x10c80 & 0xFF, 0x10cb2 & 0xFF}, {0x10cc0 & 0xFF, 0x10cf2 & 0xFF}, {0x10cfa & 0xFF, 0x10cff & 0xFF}, + {0x10d00 & 0xFF, 0x10d27 & 0xFF}, + {0x10d30 & 0xFF, 0x10d39 & 0xFF}, {0x10e60 & 0xFF, 0x10e7e & 0xFF}, + {0x10e80 & 0xFF, 0x10ea9 & 0xFF}, + {0x10eab & 0xFF, 0x10ead & 0xFF}, + {0x10eb0 & 0xFF, 0x10eb1 & 0xFF}, + {0x10f00 & 0xFF, 0x10f27 & 0xFF}, + {0x10f30 & 0xFF, 0x10f59 & 0xFF}, + {0x10fb0 & 0xFF, 0x10fcb & 0xFF}, + {0x10fe0 & 0xFF, 0x10ff6 & 0xFF}, {0x11000 & 0xFF, 0x1104d & 0xFF}, {0x11052 & 0xFF, 0x1106f & 0xFF}, {0x1107f & 0xFF, 0x1107f & 0xFF}, {0x11080 & 0xFF, 0x110c1 & 0xFF}, + {0x110cd & 0xFF, 0x110cd & 0xFF}, {0x110d0 & 0xFF, 0x110e8 & 0xFF}, {0x110f0 & 0xFF, 0x110f9 & 0xFF}, {0x11100 & 0xFF, 0x11134 & 0xFF}, - {0x11136 & 0xFF, 0x11143 & 0xFF}, + {0x11136 & 0xFF, 0x11147 & 0xFF}, {0x11150 & 0xFF, 0x11176 & 0xFF}, - {0x11180 & 0xFF, 0x111cd & 0xFF}, - {0x111d0 & 0xFF, 0x111df & 0xFF}, + {0x11180 & 0xFF, 0x111df & 0xFF}, {0x111e1 & 0xFF, 0x111f4 & 0xFF}, {0x11200 & 0xFF, 0x11211 & 0xFF}, - {0x11213 & 0xFF, 0x1123d & 0xFF}, + {0x11213 & 0xFF, 0x1123e & 0xFF}, {0x11280 & 0xFF, 0x11286 & 0xFF}, {0x11288 & 0xFF, 0x11288 & 0xFF}, {0x1128a & 0xFF, 0x1128d & 0xFF}, @@ -830,6 +836,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1132a & 0xFF, 0x11330 & 0xFF}, {0x11332 & 0xFF, 0x11333 & 0xFF}, {0x11335 & 0xFF, 0x11339 & 0xFF}, + {0x1133b & 0xFF, 0x1133b & 0xFF}, {0x1133c & 0xFF, 0x11344 & 0xFF}, {0x11347 & 0xFF, 0x11348 & 0xFF}, {0x1134b & 0xFF, 0x1134d & 0xFF}, @@ -838,20 +845,61 @@ static const uint8_t unicode_rangetab[][2]={ {0x1135d & 0xFF, 0x11363 & 0xFF}, {0x11366 & 0xFF, 0x1136c & 0xFF}, {0x11370 & 0xFF, 0x11374 & 0xFF}, + {0x11400 & 0xFF, 0x1145b & 0xFF}, + {0x1145d & 0xFF, 0x11461 & 0xFF}, {0x11480 & 0xFF, 0x114c7 & 0xFF}, {0x114d0 & 0xFF, 0x114d9 & 0xFF}, {0x11580 & 0xFF, 0x115b5 & 0xFF}, {0x115b8 & 0xFF, 0x115dd & 0xFF}, {0x11600 & 0xFF, 0x11644 & 0xFF}, {0x11650 & 0xFF, 0x11659 & 0xFF}, - {0x11680 & 0xFF, 0x116b7 & 0xFF}, + {0x11660 & 0xFF, 0x1166c & 0xFF}, + {0x11680 & 0xFF, 0x116b8 & 0xFF}, {0x116c0 & 0xFF, 0x116c9 & 0xFF}, - {0x11700 & 0xFF, 0x11719 & 0xFF}, + {0x11700 & 0xFF, 0x1171a & 0xFF}, {0x1171d & 0xFF, 0x1172b & 0xFF}, {0x11730 & 0xFF, 0x1173f & 0xFF}, + {0x11800 & 0xFF, 0x1183b & 0xFF}, {0x118a0 & 0xFF, 0x118f2 & 0xFF}, {0x118ff & 0xFF, 0x118ff & 0xFF}, + {0x11900 & 0xFF, 0x11906 & 0xFF}, + {0x11909 & 0xFF, 0x11909 & 0xFF}, + {0x1190c & 0xFF, 0x11913 & 0xFF}, + {0x11915 & 0xFF, 0x11916 & 0xFF}, + {0x11918 & 0xFF, 0x11935 & 0xFF}, + {0x11937 & 0xFF, 0x11938 & 0xFF}, + {0x1193b & 0xFF, 0x11946 & 0xFF}, + {0x11950 & 0xFF, 0x11959 & 0xFF}, + {0x119a0 & 0xFF, 0x119a7 & 0xFF}, + {0x119aa & 0xFF, 0x119d7 & 0xFF}, + {0x119da & 0xFF, 0x119e4 & 0xFF}, + {0x11a00 & 0xFF, 0x11a47 & 0xFF}, + {0x11a50 & 0xFF, 0x11aa2 & 0xFF}, {0x11ac0 & 0xFF, 0x11af8 & 0xFF}, + {0x11c00 & 0xFF, 0x11c08 & 0xFF}, + {0x11c0a & 0xFF, 0x11c36 & 0xFF}, + {0x11c38 & 0xFF, 0x11c45 & 0xFF}, + {0x11c50 & 0xFF, 0x11c6c & 0xFF}, + {0x11c70 & 0xFF, 0x11c8f & 0xFF}, + {0x11c92 & 0xFF, 0x11ca7 & 0xFF}, + {0x11ca9 & 0xFF, 0x11cb6 & 0xFF}, + {0x11d00 & 0xFF, 0x11d06 & 0xFF}, + {0x11d08 & 0xFF, 0x11d09 & 0xFF}, + {0x11d0b & 0xFF, 0x11d36 & 0xFF}, + {0x11d3a & 0xFF, 0x11d3a & 0xFF}, + {0x11d3c & 0xFF, 0x11d3d & 0xFF}, + {0x11d3f & 0xFF, 0x11d47 & 0xFF}, + {0x11d50 & 0xFF, 0x11d59 & 0xFF}, + {0x11d60 & 0xFF, 0x11d65 & 0xFF}, + {0x11d67 & 0xFF, 0x11d68 & 0xFF}, + {0x11d6a & 0xFF, 0x11d8e & 0xFF}, + {0x11d90 & 0xFF, 0x11d91 & 0xFF}, + {0x11d93 & 0xFF, 0x11d98 & 0xFF}, + {0x11da0 & 0xFF, 0x11da9 & 0xFF}, + {0x11ee0 & 0xFF, 0x11ef8 & 0xFF}, + {0x11fb0 & 0xFF, 0x11fb0 & 0xFF}, + {0x11fc0 & 0xFF, 0x11ff1 & 0xFF}, + {0x11fff & 0xFF, 0x11fff & 0xFF}, {0x12000 & 0xFF, 0x120ff & 0xFF}, {0x12100 & 0xFF, 0x121ff & 0xFF}, {0x12200 & 0xFF, 0x122ff & 0xFF}, @@ -865,6 +913,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x13200 & 0xFF, 0x132ff & 0xFF}, {0x13300 & 0xFF, 0x133ff & 0xFF}, {0x13400 & 0xFF, 0x1342e & 0xFF}, + {0x13430 & 0xFF, 0x13438 & 0xFF}, {0x14400 & 0xFF, 0x144ff & 0xFF}, {0x14500 & 0xFF, 0x145ff & 0xFF}, {0x14600 & 0xFF, 0x14646 & 0xFF}, @@ -881,11 +930,52 @@ static const uint8_t unicode_rangetab[][2]={ {0x16b5b & 0xFF, 0x16b61 & 0xFF}, {0x16b63 & 0xFF, 0x16b77 & 0xFF}, {0x16b7d & 0xFF, 0x16b8f & 0xFF}, - {0x16f00 & 0xFF, 0x16f44 & 0xFF}, - {0x16f50 & 0xFF, 0x16f7e & 0xFF}, + {0x16e40 & 0xFF, 0x16e9a & 0xFF}, + {0x16f00 & 0xFF, 0x16f4a & 0xFF}, + {0x16f4f & 0xFF, 0x16f87 & 0xFF}, {0x16f8f & 0xFF, 0x16f9f & 0xFF}, + {0x16fe0 & 0xFF, 0x16fe0 & 0xFF}, + {0x16fe1 & 0xFF, 0x16fe1 & 0xFF}, + {0x16fe2 & 0xFF, 0x16fe3 & 0xFF}, + {0x16fe4 & 0xFF, 0x16fe4 & 0xFF}, + {0x16ff0 & 0xFF, 0x16ff1 & 0xFF}, + {0x17000 & 0xFF, 0x170ff & 0xFF}, + {0x17100 & 0xFF, 0x171ff & 0xFF}, + {0x17200 & 0xFF, 0x172ff & 0xFF}, + {0x17300 & 0xFF, 0x173ff & 0xFF}, + {0x17400 & 0xFF, 0x174ff & 0xFF}, + {0x17500 & 0xFF, 0x175ff & 0xFF}, + {0x17600 & 0xFF, 0x176ff & 0xFF}, + {0x17700 & 0xFF, 0x177ff & 0xFF}, + {0x17800 & 0xFF, 0x178ff & 0xFF}, + {0x17900 & 0xFF, 0x179ff & 0xFF}, + {0x17a00 & 0xFF, 0x17aff & 0xFF}, + {0x17b00 & 0xFF, 0x17bff & 0xFF}, + {0x17c00 & 0xFF, 0x17cff & 0xFF}, + {0x17d00 & 0xFF, 0x17dff & 0xFF}, + {0x17e00 & 0xFF, 0x17eff & 0xFF}, + {0x17f00 & 0xFF, 0x17fff & 0xFF}, + {0x18000 & 0xFF, 0x180ff & 0xFF}, + {0x18100 & 0xFF, 0x181ff & 0xFF}, + {0x18200 & 0xFF, 0x182ff & 0xFF}, + {0x18300 & 0xFF, 0x183ff & 0xFF}, + {0x18400 & 0xFF, 0x184ff & 0xFF}, + {0x18500 & 0xFF, 0x185ff & 0xFF}, + {0x18600 & 0xFF, 0x186ff & 0xFF}, + {0x18700 & 0xFF, 0x187f7 & 0xFF}, + {0x18800 & 0xFF, 0x188ff & 0xFF}, + {0x18900 & 0xFF, 0x189ff & 0xFF}, + {0x18a00 & 0xFF, 0x18aff & 0xFF}, + {0x18b00 & 0xFF, 0x18bff & 0xFF}, + {0x18c00 & 0xFF, 0x18cd5 & 0xFF}, + {0x18d00 & 0xFF, 0x18d08 & 0xFF}, {0x1b000 & 0xFF, 0x1b000 & 0xFF}, - {0x1b001 & 0xFF, 0x1b001 & 0xFF}, + {0x1b001 & 0xFF, 0x1b0ff & 0xFF}, + {0x1b100 & 0xFF, 0x1b11e & 0xFF}, + {0x1b150 & 0xFF, 0x1b152 & 0xFF}, + {0x1b164 & 0xFF, 0x1b167 & 0xFF}, + {0x1b170 & 0xFF, 0x1b1ff & 0xFF}, + {0x1b200 & 0xFF, 0x1b2fb & 0xFF}, {0x1bc00 & 0xFF, 0x1bc6a & 0xFF}, {0x1bc70 & 0xFF, 0x1bc7c & 0xFF}, {0x1bc80 & 0xFF, 0x1bc88 & 0xFF}, @@ -904,8 +994,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x1d1aa & 0xFF, 0x1d1ad & 0xFF}, {0x1d1ae & 0xFF, 0x1d1e8 & 0xFF}, {0x1d200 & 0xFF, 0x1d245 & 0xFF}, + {0x1d2e0 & 0xFF, 0x1d2f3 & 0xFF}, {0x1d300 & 0xFF, 0x1d356 & 0xFF}, - {0x1d360 & 0xFF, 0x1d371 & 0xFF}, + {0x1d360 & 0xFF, 0x1d378 & 0xFF}, {0x1d400 & 0xFF, 0x1d454 & 0xFF}, {0x1d456 & 0xFF, 0x1d49c & 0xFF}, {0x1d49e & 0xFF, 0x1d49f & 0xFF}, @@ -935,8 +1026,24 @@ static const uint8_t unicode_rangetab[][2]={ {0x1da00 & 0xFF, 0x1da8b & 0xFF}, {0x1da9b & 0xFF, 0x1da9f & 0xFF}, {0x1daa1 & 0xFF, 0x1daaf & 0xFF}, + {0x1e000 & 0xFF, 0x1e006 & 0xFF}, + {0x1e008 & 0xFF, 0x1e018 & 0xFF}, + {0x1e01b & 0xFF, 0x1e021 & 0xFF}, + {0x1e023 & 0xFF, 0x1e024 & 0xFF}, + {0x1e026 & 0xFF, 0x1e02a & 0xFF}, + {0x1e100 & 0xFF, 0x1e12c & 0xFF}, + {0x1e130 & 0xFF, 0x1e13d & 0xFF}, + {0x1e140 & 0xFF, 0x1e149 & 0xFF}, + {0x1e14e & 0xFF, 0x1e14f & 0xFF}, + {0x1e2c0 & 0xFF, 0x1e2f9 & 0xFF}, + {0x1e2ff & 0xFF, 0x1e2ff & 0xFF}, {0x1e800 & 0xFF, 0x1e8c4 & 0xFF}, {0x1e8c7 & 0xFF, 0x1e8d6 & 0xFF}, + {0x1e900 & 0xFF, 0x1e94b & 0xFF}, + {0x1e950 & 0xFF, 0x1e959 & 0xFF}, + {0x1e95e & 0xFF, 0x1e95f & 0xFF}, + {0x1ec71 & 0xFF, 0x1ecb4 & 0xFF}, + {0x1ed01 & 0xFF, 0x1ed3d & 0xFF}, {0x1ee00 & 0xFF, 0x1ee03 & 0xFF}, {0x1ee05 & 0xFF, 0x1ee1f & 0xFF}, {0x1ee21 & 0xFF, 0x1ee22 & 0xFF}, @@ -977,34 +1084,44 @@ static const uint8_t unicode_rangetab[][2]={ {0x1f0b1 & 0xFF, 0x1f0bf & 0xFF}, {0x1f0c1 & 0xFF, 0x1f0cf & 0xFF}, {0x1f0d1 & 0xFF, 0x1f0f5 & 0xFF}, - {0x1f100 & 0xFF, 0x1f10c & 0xFF}, - {0x1f110 & 0xFF, 0x1f12e & 0xFF}, - {0x1f130 & 0xFF, 0x1f16b & 0xFF}, - {0x1f170 & 0xFF, 0x1f19a & 0xFF}, + {0x1f100 & 0xFF, 0x1f1ad & 0xFF}, {0x1f1e6 & 0xFF, 0x1f1ff & 0xFF}, {0x1f200 & 0xFF, 0x1f200 & 0xFF}, {0x1f201 & 0xFF, 0x1f202 & 0xFF}, - {0x1f210 & 0xFF, 0x1f23a & 0xFF}, + {0x1f210 & 0xFF, 0x1f23b & 0xFF}, {0x1f240 & 0xFF, 0x1f248 & 0xFF}, {0x1f250 & 0xFF, 0x1f251 & 0xFF}, + {0x1f260 & 0xFF, 0x1f265 & 0xFF}, {0x1f300 & 0xFF, 0x1f3ff & 0xFF}, {0x1f400 & 0xFF, 0x1f4ff & 0xFF}, - {0x1f500 & 0xFF, 0x1f579 & 0xFF}, - {0x1f57b & 0xFF, 0x1f5a3 & 0xFF}, - {0x1f5a5 & 0xFF, 0x1f5ff & 0xFF}, - {0x1f600 & 0xFF, 0x1f6d0 & 0xFF}, + {0x1f500 & 0xFF, 0x1f5ff & 0xFF}, + {0x1f600 & 0xFF, 0x1f6d7 & 0xFF}, {0x1f6e0 & 0xFF, 0x1f6ec & 0xFF}, - {0x1f6f0 & 0xFF, 0x1f6f3 & 0xFF}, + {0x1f6f0 & 0xFF, 0x1f6fc & 0xFF}, {0x1f700 & 0xFF, 0x1f773 & 0xFF}, - {0x1f780 & 0xFF, 0x1f7d4 & 0xFF}, + {0x1f780 & 0xFF, 0x1f7d8 & 0xFF}, + {0x1f7e0 & 0xFF, 0x1f7eb & 0xFF}, {0x1f800 & 0xFF, 0x1f80b & 0xFF}, {0x1f810 & 0xFF, 0x1f847 & 0xFF}, {0x1f850 & 0xFF, 0x1f859 & 0xFF}, {0x1f860 & 0xFF, 0x1f887 & 0xFF}, {0x1f890 & 0xFF, 0x1f8ad & 0xFF}, - {0x1f910 & 0xFF, 0x1f918 & 0xFF}, - {0x1f980 & 0xFF, 0x1f984 & 0xFF}, - {0x1f9c0 & 0xFF, 0x1f9c0 & 0xFF}, + {0x1f8b0 & 0xFF, 0x1f8b1 & 0xFF}, + {0x1f900 & 0xFF, 0x1f978 & 0xFF}, + {0x1f97a & 0xFF, 0x1f9cb & 0xFF}, + {0x1f9cd & 0xFF, 0x1f9ff & 0xFF}, + {0x1fa00 & 0xFF, 0x1fa53 & 0xFF}, + {0x1fa60 & 0xFF, 0x1fa6d & 0xFF}, + {0x1fa70 & 0xFF, 0x1fa74 & 0xFF}, + {0x1fa78 & 0xFF, 0x1fa7a & 0xFF}, + {0x1fa80 & 0xFF, 0x1fa86 & 0xFF}, + {0x1fa90 & 0xFF, 0x1faa8 & 0xFF}, + {0x1fab0 & 0xFF, 0x1fab6 & 0xFF}, + {0x1fac0 & 0xFF, 0x1fac2 & 0xFF}, + {0x1fad0 & 0xFF, 0x1fad6 & 0xFF}, + {0x1fb00 & 0xFF, 0x1fb92 & 0xFF}, + {0x1fb94 & 0xFF, 0x1fbca & 0xFF}, + {0x1fbf0 & 0xFF, 0x1fbf9 & 0xFF}, {0x20000 & 0xFF, 0x200ff & 0xFF}, {0x20100 & 0xFF, 0x201ff & 0xFF}, {0x20200 & 0xFF, 0x202ff & 0xFF}, @@ -1171,7 +1288,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x2a300 & 0xFF, 0x2a3ff & 0xFF}, {0x2a400 & 0xFF, 0x2a4ff & 0xFF}, {0x2a500 & 0xFF, 0x2a5ff & 0xFF}, - {0x2a600 & 0xFF, 0x2a6d6 & 0xFF}, + {0x2a600 & 0xFF, 0x2a6dd & 0xFF}, {0x2a700 & 0xFF, 0x2a7ff & 0xFF}, {0x2a800 & 0xFF, 0x2a8ff & 0xFF}, {0x2a900 & 0xFF, 0x2a9ff & 0xFF}, @@ -1214,9 +1331,59 @@ static const uint8_t unicode_rangetab[][2]={ {0x2cc00 & 0xFF, 0x2ccff & 0xFF}, {0x2cd00 & 0xFF, 0x2cdff & 0xFF}, {0x2ce00 & 0xFF, 0x2cea1 & 0xFF}, + {0x2ceb0 & 0xFF, 0x2ceff & 0xFF}, + {0x2cf00 & 0xFF, 0x2cfff & 0xFF}, + {0x2d000 & 0xFF, 0x2d0ff & 0xFF}, + {0x2d100 & 0xFF, 0x2d1ff & 0xFF}, + {0x2d200 & 0xFF, 0x2d2ff & 0xFF}, + {0x2d300 & 0xFF, 0x2d3ff & 0xFF}, + {0x2d400 & 0xFF, 0x2d4ff & 0xFF}, + {0x2d500 & 0xFF, 0x2d5ff & 0xFF}, + {0x2d600 & 0xFF, 0x2d6ff & 0xFF}, + {0x2d700 & 0xFF, 0x2d7ff & 0xFF}, + {0x2d800 & 0xFF, 0x2d8ff & 0xFF}, + {0x2d900 & 0xFF, 0x2d9ff & 0xFF}, + {0x2da00 & 0xFF, 0x2daff & 0xFF}, + {0x2db00 & 0xFF, 0x2dbff & 0xFF}, + {0x2dc00 & 0xFF, 0x2dcff & 0xFF}, + {0x2dd00 & 0xFF, 0x2ddff & 0xFF}, + {0x2de00 & 0xFF, 0x2deff & 0xFF}, + {0x2df00 & 0xFF, 0x2dfff & 0xFF}, + {0x2e000 & 0xFF, 0x2e0ff & 0xFF}, + {0x2e100 & 0xFF, 0x2e1ff & 0xFF}, + {0x2e200 & 0xFF, 0x2e2ff & 0xFF}, + {0x2e300 & 0xFF, 0x2e3ff & 0xFF}, + {0x2e400 & 0xFF, 0x2e4ff & 0xFF}, + {0x2e500 & 0xFF, 0x2e5ff & 0xFF}, + {0x2e600 & 0xFF, 0x2e6ff & 0xFF}, + {0x2e700 & 0xFF, 0x2e7ff & 0xFF}, + {0x2e800 & 0xFF, 0x2e8ff & 0xFF}, + {0x2e900 & 0xFF, 0x2e9ff & 0xFF}, + {0x2ea00 & 0xFF, 0x2eaff & 0xFF}, + {0x2eb00 & 0xFF, 0x2ebe0 & 0xFF}, {0x2f800 & 0xFF, 0x2f8ff & 0xFF}, {0x2f900 & 0xFF, 0x2f9ff & 0xFF}, {0x2fa00 & 0xFF, 0x2fa1d & 0xFF}, + {0x30000 & 0xFF, 0x300ff & 0xFF}, + {0x30100 & 0xFF, 0x301ff & 0xFF}, + {0x30200 & 0xFF, 0x302ff & 0xFF}, + {0x30300 & 0xFF, 0x303ff & 0xFF}, + {0x30400 & 0xFF, 0x304ff & 0xFF}, + {0x30500 & 0xFF, 0x305ff & 0xFF}, + {0x30600 & 0xFF, 0x306ff & 0xFF}, + {0x30700 & 0xFF, 0x307ff & 0xFF}, + {0x30800 & 0xFF, 0x308ff & 0xFF}, + {0x30900 & 0xFF, 0x309ff & 0xFF}, + {0x30a00 & 0xFF, 0x30aff & 0xFF}, + {0x30b00 & 0xFF, 0x30bff & 0xFF}, + {0x30c00 & 0xFF, 0x30cff & 0xFF}, + {0x30d00 & 0xFF, 0x30dff & 0xFF}, + {0x30e00 & 0xFF, 0x30eff & 0xFF}, + {0x30f00 & 0xFF, 0x30fff & 0xFF}, + {0x31000 & 0xFF, 0x310ff & 0xFF}, + {0x31100 & 0xFF, 0x311ff & 0xFF}, + {0x31200 & 0xFF, 0x312ff & 0xFF}, + {0x31300 & 0xFF, 0x3134a & 0xFF}, {0xe0001 & 0xFF, 0xe0001 & 0xFF}, {0xe0020 & 0xFF, 0xe007f & 0xFF}, {0xe0100 & 0xFF, 0xe01ef & 0xFF}}; @@ -1267,9 +1434,6 @@ static const uint8_t unicode_classtab[]={ unicode_script_armenian, unicode_script_armenian, unicode_script_armenian, - unicode_script_common, - unicode_script_armenian, - unicode_script_armenian, unicode_script_hebrew, unicode_script_hebrew, unicode_script_hebrew, @@ -1280,6 +1444,7 @@ static const uint8_t unicode_classtab[]={ unicode_script_arabic, unicode_script_common, unicode_script_arabic, + unicode_script_arabic, unicode_script_common, unicode_script_arabic, unicode_script_common, @@ -1296,12 +1461,17 @@ static const uint8_t unicode_classtab[]={ unicode_script_arabic, unicode_script_thaana, unicode_script_nko, + unicode_script_nko, unicode_script_samaritan, unicode_script_samaritan, unicode_script_mandaic, unicode_script_mandaic, + unicode_script_syriac, unicode_script_arabic, unicode_script_arabic, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, unicode_script_devanagari, unicode_script_inherited, unicode_script_devanagari, @@ -1393,8 +1563,6 @@ static const uint8_t unicode_classtab[]={ unicode_script_telugu, unicode_script_telugu, unicode_script_telugu, - unicode_script_telugu, - unicode_script_kannada, unicode_script_kannada, unicode_script_kannada, unicode_script_kannada, @@ -1415,10 +1583,6 @@ static const uint8_t unicode_classtab[]={ unicode_script_malayalam, unicode_script_malayalam, unicode_script_malayalam, - unicode_script_malayalam, - unicode_script_malayalam, - unicode_script_malayalam, - unicode_script_malayalam, unicode_script_sinhala, unicode_script_sinhala, unicode_script_sinhala, @@ -1445,13 +1609,6 @@ static const uint8_t unicode_classtab[]={ unicode_script_lao, unicode_script_lao, unicode_script_lao, - unicode_script_lao, - unicode_script_lao, - unicode_script_lao, - unicode_script_lao, - unicode_script_lao, - unicode_script_lao, - unicode_script_lao, unicode_script_tibetan, unicode_script_tibetan, unicode_script_tibetan, @@ -1545,6 +1702,9 @@ static const uint8_t unicode_classtab[]={ unicode_script_lepcha, unicode_script_lepcha, unicode_script_ol_chiki, + unicode_script_cyrillic, + unicode_script_georgian, + unicode_script_georgian, unicode_script_sundanese, unicode_script_inherited, unicode_script_common, @@ -1557,6 +1717,7 @@ static const uint8_t unicode_classtab[]={ unicode_script_inherited, unicode_script_common, unicode_script_inherited, + unicode_script_common, unicode_script_latin, unicode_script_greek, unicode_script_cyrillic, @@ -1624,9 +1785,6 @@ static const uint8_t unicode_classtab[]={ unicode_script_common, unicode_script_common, unicode_script_common, - unicode_script_common, - unicode_script_common, - unicode_script_common, unicode_script_glagolitic, unicode_script_glagolitic, unicode_script_latin, @@ -1683,6 +1841,7 @@ static const uint8_t unicode_classtab[]={ unicode_script_hangul, unicode_script_common, unicode_script_katakana, + unicode_script_common, unicode_script_katakana, unicode_script_common, unicode_script_han, @@ -1845,6 +2004,8 @@ static const uint8_t unicode_classtab[]={ unicode_script_common, unicode_script_latin, unicode_script_greek, + unicode_script_latin, + unicode_script_common, unicode_script_cherokee, unicode_script_meetei_mayek, unicode_script_meetei_mayek, @@ -1960,6 +2121,7 @@ static const uint8_t unicode_classtab[]={ unicode_script_inherited, unicode_script_common, unicode_script_old_italic, + unicode_script_old_italic, unicode_script_gothic, unicode_script_old_permic, unicode_script_ugaritic, @@ -1970,6 +2132,8 @@ static const uint8_t unicode_classtab[]={ unicode_script_shavian, unicode_script_osmanya, unicode_script_osmanya, + unicode_script_osage, + unicode_script_osage, unicode_script_elbasan, unicode_script_caucasian_albanian, unicode_script_caucasian_albanian, @@ -2024,18 +2188,27 @@ static const uint8_t unicode_classtab[]={ unicode_script_old_hungarian, unicode_script_old_hungarian, unicode_script_old_hungarian, + unicode_script_hanifi_rohingya, + unicode_script_hanifi_rohingya, unicode_script_arabic, + unicode_script_yezidi, + unicode_script_yezidi, + unicode_script_yezidi, + unicode_script_old_sogdian, + unicode_script_sogdian, + unicode_script_chorasmian, + unicode_script_elymaic, unicode_script_brahmi, unicode_script_brahmi, unicode_script_brahmi, unicode_script_kaithi, + unicode_script_kaithi, unicode_script_sora_sompeng, unicode_script_sora_sompeng, unicode_script_chakma, unicode_script_chakma, unicode_script_mahajani, unicode_script_sharada, - unicode_script_sharada, unicode_script_sinhala, unicode_script_khojki, unicode_script_khojki, @@ -2053,6 +2226,7 @@ static const uint8_t unicode_classtab[]={ unicode_script_grantha, unicode_script_grantha, unicode_script_grantha, + unicode_script_inherited, unicode_script_grantha, unicode_script_grantha, unicode_script_grantha, @@ -2061,20 +2235,61 @@ static const uint8_t unicode_classtab[]={ unicode_script_grantha, unicode_script_grantha, unicode_script_grantha, + unicode_script_newa, + unicode_script_newa, unicode_script_tirhuta, unicode_script_tirhuta, unicode_script_siddham, unicode_script_siddham, unicode_script_modi, unicode_script_modi, + unicode_script_mongolian, unicode_script_takri, unicode_script_takri, unicode_script_ahom, unicode_script_ahom, unicode_script_ahom, + unicode_script_dogra, unicode_script_warang_citi, unicode_script_warang_citi, + unicode_script_dives_akuru, + unicode_script_dives_akuru, + unicode_script_dives_akuru, + unicode_script_dives_akuru, + unicode_script_dives_akuru, + unicode_script_dives_akuru, + unicode_script_dives_akuru, + unicode_script_dives_akuru, + unicode_script_nandinagari, + unicode_script_nandinagari, + unicode_script_nandinagari, + unicode_script_zanabazar_square, + unicode_script_soyombo, unicode_script_pau_cin_hau, + unicode_script_bhaiksuki, + unicode_script_bhaiksuki, + unicode_script_bhaiksuki, + unicode_script_bhaiksuki, + unicode_script_marchen, + unicode_script_marchen, + unicode_script_marchen, + unicode_script_masaram_gondi, + unicode_script_masaram_gondi, + unicode_script_masaram_gondi, + unicode_script_masaram_gondi, + unicode_script_masaram_gondi, + unicode_script_masaram_gondi, + unicode_script_masaram_gondi, + unicode_script_gunjala_gondi, + unicode_script_gunjala_gondi, + unicode_script_gunjala_gondi, + unicode_script_gunjala_gondi, + unicode_script_gunjala_gondi, + unicode_script_gunjala_gondi, + unicode_script_makasar, + unicode_script_lisu, + unicode_script_tamil, + unicode_script_tamil, unicode_script_cuneiform, unicode_script_cuneiform, unicode_script_cuneiform, @@ -2088,6 +2303,7 @@ static const uint8_t unicode_classtab[]={ unicode_script_egyptian_hieroglyphs, unicode_script_egyptian_hieroglyphs, unicode_script_egyptian_hieroglyphs, + unicode_script_egyptian_hieroglyphs, unicode_script_anatolian_hieroglyphs, unicode_script_anatolian_hieroglyphs, unicode_script_anatolian_hieroglyphs, @@ -2104,11 +2320,52 @@ static const uint8_t unicode_classtab[]={ unicode_script_pahawh_hmong, unicode_script_pahawh_hmong, unicode_script_pahawh_hmong, + unicode_script_medefaidrin, unicode_script_miao, unicode_script_miao, unicode_script_miao, + unicode_script_tangut, + unicode_script_nushu, + unicode_script_common, + unicode_script_khitan_small_script, + unicode_script_han, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_tangut, + unicode_script_khitan_small_script, + unicode_script_khitan_small_script, + unicode_script_tangut, unicode_script_katakana, unicode_script_hiragana, + unicode_script_hiragana, + unicode_script_hiragana, + unicode_script_katakana, + unicode_script_nushu, + unicode_script_nushu, unicode_script_duployan, unicode_script_duployan, unicode_script_duployan, @@ -2153,13 +2410,30 @@ static const uint8_t unicode_classtab[]={ unicode_script_common, unicode_script_common, unicode_script_common, + unicode_script_common, unicode_script_signwriting, unicode_script_signwriting, unicode_script_signwriting, unicode_script_signwriting, unicode_script_signwriting, + unicode_script_glagolitic, + unicode_script_glagolitic, + unicode_script_glagolitic, + unicode_script_glagolitic, + unicode_script_glagolitic, + unicode_script_nyiakeng_puachue_hmong, + unicode_script_nyiakeng_puachue_hmong, + unicode_script_nyiakeng_puachue_hmong, + unicode_script_nyiakeng_puachue_hmong, + unicode_script_wancho, + unicode_script_wancho, unicode_script_mende_kikakui, unicode_script_mende_kikakui, + unicode_script_adlam, + unicode_script_adlam, + unicode_script_adlam, + unicode_script_common, + unicode_script_common, unicode_script_arabic, unicode_script_arabic, unicode_script_arabic, @@ -2202,10 +2476,16 @@ static const uint8_t unicode_classtab[]={ unicode_script_common, unicode_script_common, unicode_script_common, + unicode_script_hiragana, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, unicode_script_common, unicode_script_common, unicode_script_common, - unicode_script_hiragana, unicode_script_common, unicode_script_common, unicode_script_common, @@ -2228,6 +2508,60 @@ static const uint8_t unicode_classtab[]={ unicode_script_common, unicode_script_common, unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, unicode_script_han, unicode_script_han, unicode_script_han, @@ -2451,52 +2785,60 @@ static const size_t unicode_indextab[]={ 21, 38, 41, - 51, - 68, - 74, - 80, - 99, - 129, - 159, - 186, - 209, - 230, - 238, - 245, - 246, - 260, - 267, - 268, - 269, - 274, - 285, - 294, - 306, - 314, - 319, - 335, - 348, - 349, - 365, - 376, + 48, + 66, + 73, + 83, + 102, + 132, + 162, + 187, + 206, + 220, + 228, + 235, + 236, + 250, + 257, + 258, + 259, + 264, + 275, + 284, + 296, + 304, + 309, + 329, + 342, + 343, + 359, + 370, + 382, + 383, + 384, + 387, 388, 389, 390, + 391, + 392, 393, - 394, - 395, 396, - 397, - 398, - 399, - 405, - 410, - 426, - 429, - 431, - 450, + 401, + 417, + 420, + 422, + 441, + 447, + 453, + 455, 456, + 457, + 458, + 459, + 460, 461, + 462, 463, 464, 465, @@ -2515,7 +2857,6 @@ static const size_t unicode_indextab[]={ 478, 479, 480, - 481, 482, 483, 484, @@ -2523,6 +2864,7 @@ static const size_t unicode_indextab[]={ 486, 487, 488, + 489, 490, 491, 492, @@ -2602,21 +2944,19 @@ static const size_t unicode_indextab[]={ 566, 567, 568, - 569, - 570, 571, 572, - 573, - 574, 575, - 576, - 579, - 580, - 583, - 589, - 595, + 581, + 587, + 598, 606, - 614, + 620, + 621, + 622, + 623, + 624, + 625, 626, 627, 628, @@ -2655,425 +2995,302 @@ static const size_t unicode_indextab[]={ 661, 662, 663, - 664, - 665, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, + 666, 666, 667, - 668, 669, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 672, - 673, - 675, + 679, + 680, 685, - 686, - 691, - 701, - 718, - 725, - 733, - 737, - 744, + 695, + 712, + 719, + 727, + 731, + 739, + 745, 748, - 751, + 749, 752, - 755, - 769, - 777, - 789, - 798, - 802, - 802, - 803, - 803, + 766, + 774, + 786, + 795, + 799, + 801, + 805, 809, - 815, - 824, - 839, - 841, - 843, - 847, + 816, + 821, + 830, + 846, 850, 852, - 852, - 853, - 853, - 853, - 853, - 853, - 853, - 854, - 855, - 856, 857, 860, - 861, - 861, - 861, - 861, - 861, - 861, - 861, - 861, - 861, - 861, - 861, - 862, 863, - 864, - 865, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 866, - 867, - 868, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 869, - 870, - 871, + 874, + 877, 877, - 882, - 882, - 882, - 882, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 885, - 887, - 887, - 887, - 887, - 887, - 887, - 887, - 887, - 887, - 887, - 887, - 887, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 893, - 894, + 884, + 897, + 898, + 901, + 902, + 903, 904, 905, - 907, + 908, + 909, + 909, + 909, + 909, + 909, + 909, + 909, + 909, + 909, + 909, + 909, + 910, + 911, + 912, + 913, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 915, + 916, 917, - 927, - 929, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 918, + 919, + 920, + 926, + 931, + 931, 931, 932, - 933, - 936, - 936, - 936, - 936, - 936, - 936, - 936, - 936, - 936, - 936, - 936, - 936, - 936, - 936, - 938, - 938, - 938, - 938, - 938, - 938, - 972, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, + 970, 972, - 978, + 976, + 977, + 977, + 977, + 977, + 977, + 977, + 977, + 977, + 977, + 977, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, + 983, 983, - 988, - 989, - 990, - 993, + 983, + 983, + 983, + 984, + 994, 996, 998, - 1003, - 1006, - 1006, - 1006, - 1006, - 1006, - 1006, - 1006, - 1007, 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, 1018, - 1019, 1020, - 1021, 1022, 1023, 1024, - 1025, - 1026, 1027, - 1028, - 1029, - 1030, - 1031, + 1027, + 1027, + 1027, + 1027, + 1027, 1032, - 1033, - 1034, - 1035, 1036, - 1037, 1038, - 1039, + 1038, + 1038, + 1038, + 1038, + 1038, 1040, - 1041, - 1042, + 1043, + 1043, 1043, 1044, 1045, - 1046, - 1047, - 1048, - 1049, - 1050, - 1051, - 1052, - 1053, - 1054, - 1055, - 1056, - 1057, - 1058, - 1059, - 1060, - 1061, - 1062, - 1063, - 1064, - 1065, - 1066, - 1067, - 1068, - 1069, - 1070, - 1071, - 1072, - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, 1079, - 1080, - 1081, - 1082, - 1083, - 1084, + 1079, 1085, - 1086, 1087, - 1088, - 1089, - 1090, - 1091, - 1092, 1093, 1094, 1095, 1096, - 1097, - 1098, 1099, - 1100, - 1101, 1102, - 1103, - 1104, - 1105, - 1106, - 1107, 1108, - 1109, - 1110, 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, 1120, - 1121, - 1122, + 1123, + 1123, + 1123, + 1123, 1123, 1124, 1125, @@ -3141,7 +3358,9 @@ static const size_t unicode_indextab[]={ 1187, 1188, 1189, + 1190, 1191, + 1192, 1193, 1194, 1195, @@ -3165,2871 +3384,2986 @@ static const size_t unicode_indextab[]={ 1213, 1214, 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, - 1215, 1216, 1217, 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, - 1218, + 1219, 1220, - 1221}; + 1221, + 1222, + 1223, + 1224, + 1225, + 1226, + 1227, + 1228, + 1229, + 1230, + 1231, + 1232, + 1233, + 1234, + 1235, + 1236, + 1237, + 1238, + 1239, + 1240, + 1241, + 1242, + 1243, + 1244, + 1245, + 1246, + 1247, + 1248, + 1249, + 1250, + 1251, + 1252, + 1253, + 1254, + 1255, + 1256, + 1257, + 1258, + 1259, + 1260, + 1261, + 1262, + 1263, + 1264, + 1265, + 1266, + 1267, + 1268, + 1269, + 1270, + 1271, + 1272, + 1273, + 1274, + 1275, + 1276, + 1277, + 1278, + 1279, + 1280, + 1281, + 1282, + 1283, + 1284, + 1285, + 1286, + 1287, + 1288, + 1289, + 1290, + 1291, + 1292, + 1293, + 1294, + 1295, + 1296, + 1297, + 1298, + 1299, + 1300, + 1301, + 1302, + 1303, + 1304, + 1305, + 1306, + 1308, + 1310, + 1311, + 1312, + 1313, + 1314, + 1315, + 1316, + 1317, + 1318, + 1319, + 1320, + 1321, + 1322, + 1323, + 1324, + 1325, + 1326, + 1327, + 1328, + 1329, + 1330, + 1331, + 1333, + 1334, + 1335, + 1336, + 1337, + 1338, + 1339, + 1340, + 1341, + 1342, + 1343, + 1344, + 1345, + 1346, + 1347, + 1348, + 1349, + 1350, + 1351, + 1352, + 1353, + 1354, + 1355, + 1356, + 1357, + 1358, + 1359, + 1360, + 1361, + 1362, + 1362, + 1362, + 1362, + 1362, + 1362, + 1362, + 1362, + 1362, + 1362, + 1362, + 1362, + 1362, + 1363, + 1364, + 1365, + 1365, + 1365, + 1365, + 1365, + 1365, + 1366, + 1367, + 1368, + 1369, + 1370, + 1371, + 1372, + 1373, + 1374, + 1375, + 1376, + 1377, + 1378, + 1379, + 1380, + 1381, + 1382, + 1383, + 1384, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1385, + 1387, + 1388}; diff --git a/unicode/unicode_emoji.c b/unicode/unicode_emoji.c new file mode 100644 index 0000000..9dcd2e6 --- /dev/null +++ b/unicode/unicode_emoji.c @@ -0,0 +1,90 @@ +/* +** Copyright 2011 Double Precision, Inc. +** See COPYING for distribution information. +** +*/ + +#include "unicode_config.h" +#include "courier-unicode.h" +#include "emojitab.h" + +static int emoji_lookup(const char32_t (*p)[2], size_t e, char32_t c) +{ + size_t b=0; + + while (b < e) + { + size_t n=b + (e-b)/2; + + if (c >= p[n][0]) + { + if (c <= p[n][1]) + { + return 1; + } + b=n+1; + } + else + { + e=n; + } + } + + return 0; +} + +#define LOOKUP(t) emoji_lookup(t, sizeof(t)/sizeof(t[0]), c) + +int unicode_emoji(char32_t c) +{ + return LOOKUP(unicode_emoji_emoji_lookup); +} + +int unicode_emoji_presentation(char32_t c) +{ + return LOOKUP(unicode_emoji_emoji_presentation_lookup); +} + +int unicode_emoji_modifier(char32_t c) +{ + return LOOKUP(unicode_emoji_emoji_modifier_lookup); +} + +int unicode_emoji_modifier_base(char32_t c) +{ + return LOOKUP(unicode_emoji_emoji_modifier_base_lookup); +} + +int unicode_emoji_component(char32_t c) +{ + return LOOKUP(unicode_emoji_emoji_component_lookup); +} + +int unicode_emoji_extended_pictographic(char32_t c) +{ + return LOOKUP(unicode_emoji_extended_pictographic_lookup); +} + +static const struct { + int (*lookup_func)(char32_t); + unicode_emoji_t flag; +} lookups[]={ + { unicode_emoji, UNICODE_EMOJI}, + { unicode_emoji_presentation, UNICODE_EMOJI_PRESENTATION}, + { unicode_emoji_modifier, UNICODE_EMOJI_MODIFIER}, + { unicode_emoji_modifier_base, UNICODE_EMOJI_MODIFIER_BASE}, + { unicode_emoji_component, UNICODE_EMOJI_COMPONENT}, + { unicode_emoji_extended_pictographic, + UNICODE_EMOJI_EXTENDED_PICTOGRAPHIC}, +}; + +extern unicode_emoji_t unicode_emoji_lookup(char32_t c) +{ + unicode_emoji_t v=UNICODE_EMOJI_NONE; + + for (size_t i=0; i<sizeof(lookups)/sizeof(lookups[0]); ++i) + if ( (*lookups[i].lookup_func)(c) ) + v |= lookups[i].flag; + + return v; +} diff --git a/unicode/unicode_graphemebreak.c b/unicode/unicode_graphemebreak.c index 926bfb1..db6b92b 100644 --- a/unicode/unicode_graphemebreak.c +++ b/unicode/unicode_graphemebreak.c @@ -1,5 +1,5 @@ /* -** Copyright 2011 Double Precision, Inc. +** Copyright 2011-2020 Double Precision, Inc. ** See COPYING for distribution information. ** */ @@ -8,6 +8,7 @@ #include "courier-unicode.h" #include <unistd.h> #include <stdint.h> +#include <string.h> #include <stdlib.h> #define UNICODE_GRAPHEMEBREAK_ANY 0x00 @@ -24,22 +25,63 @@ #define UNICODE_GRAPHEMEBREAK_LVT 0x0B #define UNICODE_GRAPHEMEBREAK_Regional_Indicator 0x0C +#define UNICODE_GRAPHEMEBREAK_ZWJ 0x0D + +#define UNICODE_GRAPHEMEBREAK_SOT 0xFF + #include "graphemebreaktab.h" +struct unicode_grapheme_break_info_s { + uint8_t prev_class; + unsigned prev_count; +}; + +unicode_grapheme_break_info_t unicode_grapheme_break_init() +{ + unicode_grapheme_break_info_t t=(unicode_grapheme_break_info_t) + calloc(1, sizeof(struct unicode_grapheme_break_info_s)); + + if (!t) + abort(); + + t->prev_class=UNICODE_GRAPHEMEBREAK_SOT; + + return t; +} + +void unicode_grapheme_break_deinit(unicode_grapheme_break_info_t t) +{ + free(t); +} + int unicode_grapheme_break(char32_t a, char32_t b) { - uint8_t ac=unicode_tab_lookup(a, unicode_indextab, - sizeof(unicode_indextab)/sizeof(unicode_indextab[0]), - unicode_rangetab, - unicode_classtab, - UNICODE_GRAPHEMEBREAK_ANY), - bc=unicode_tab_lookup(b, unicode_indextab, + struct unicode_grapheme_break_info_s s; + + memset((char *)&s, 0, sizeof(s)); + + (void)unicode_grapheme_break_next(&s, a); + + return unicode_grapheme_break_next(&s, b); +} + +int unicode_grapheme_break_next(unicode_grapheme_break_info_t t, char32_t b) +{ + uint8_t ac=t->prev_class; + uint8_t bc=unicode_tab_lookup(b, unicode_indextab, sizeof(unicode_indextab)/sizeof(unicode_indextab[0]), unicode_rangetab, unicode_classtab, UNICODE_GRAPHEMEBREAK_ANY); - /* GB1 and GB2 are implied */ + if (ac != bc) + t->prev_count=0; + ++t->prev_count; + + t->prev_class=bc; + + if (ac == UNICODE_GRAPHEMEBREAK_SOT) + return 1; /* GB1, GB2 is implied */ if (ac == UNICODE_GRAPHEMEBREAK_CR && bc == UNICODE_GRAPHEMEBREAK_LF) return 0; /* GB3 */ @@ -83,11 +125,8 @@ int unicode_grapheme_break(char32_t a, char32_t b) bc == UNICODE_GRAPHEMEBREAK_T) return 0; /* GB8 */ - if (ac == UNICODE_GRAPHEMEBREAK_Regional_Indicator && - bc == UNICODE_GRAPHEMEBREAK_Regional_Indicator) - return 0; /* GB8a */ - - if (bc == UNICODE_GRAPHEMEBREAK_Extend) + if (bc == UNICODE_GRAPHEMEBREAK_Extend || + bc == UNICODE_GRAPHEMEBREAK_ZWJ) return 0; /* GB9 */ if (bc == UNICODE_GRAPHEMEBREAK_SpacingMark) @@ -96,5 +135,14 @@ int unicode_grapheme_break(char32_t a, char32_t b) if (ac == UNICODE_GRAPHEMEBREAK_Prepend) return 0; /* GB9b */ - return 1; /* GB10 */ + if (ac == UNICODE_GRAPHEMEBREAK_Extend || + ac == UNICODE_GRAPHEMEBREAK_ZWJ) + return 0; /* GB11? */ + + if (ac == UNICODE_GRAPHEMEBREAK_Regional_Indicator && + bc == UNICODE_GRAPHEMEBREAK_Regional_Indicator && + (t->prev_count % 2) == 0) + return 0; /* GB12, GB13 */ + + return 1; /* GB999 */ } diff --git a/unicode/unicode_linebreak.c b/unicode/unicode_linebreak.c index a843c6c..9d1e73c 100644 --- a/unicode/unicode_linebreak.c +++ b/unicode/unicode_linebreak.c @@ -19,39 +19,55 @@ #define UNICODE_LB_SOT 0xFF +struct state_t { + uint8_t lb; + uint8_t ew; +}; + +typedef struct state_t state_t; + struct unicode_lb_info { int (*cb_func)(int, void *); void *cb_arg; int opts; - uint8_t savedclass; + state_t savedclass; size_t savedcmcnt; - uint8_t prevclass_min1; - uint8_t prevclass; - uint8_t prevclass_nsp; + state_t prevclass_min1; + state_t prevclass; + state_t prevclass_nsp; - int (*next_handler)(struct unicode_lb_info *, uint8_t); + /* Flag -- recursively invoked after discarding LB25 */ + char nolb25; + + /* Flag -- seen a pair of RIs */ + char nolb30a; + + int (*next_handler)(struct unicode_lb_info *, state_t); int (*end_handler)(struct unicode_lb_info *); }; /* http://www.unicode.org/reports/tr14/#Algorithm */ -static int next_def(unicode_lb_info_t, uint8_t); +static int next_def(unicode_lb_info_t, state_t); static int end_def(unicode_lb_info_t); -static int next_lb25_seenophy(unicode_lb_info_t, uint8_t); +static int next_lb25_seenophy(unicode_lb_info_t, state_t); static int end_lb25_seenophy(unicode_lb_info_t); -static int next_lb25_seennu(unicode_lb_info_t, uint8_t); +static int next_lb25_seennu(unicode_lb_info_t, state_t); -static int next_lb25_seennuclcp(unicode_lb_info_t, uint8_t); +static int next_lb25_seennuclcp(unicode_lb_info_t, state_t); static void unicode_lb_reset(unicode_lb_info_t i) { - i->prevclass_min1=i->prevclass=i->prevclass_nsp=UNICODE_LB_SOT; + i->prevclass.lb=UNICODE_LB_SOT; + i->prevclass.ew=UNICODE_EASTASIA_N; + + i->prevclass_min1=i->prevclass_nsp=i->prevclass; i->next_handler=next_def; i->end_handler=end_def; } @@ -88,7 +104,16 @@ static int end_def(unicode_lb_info_t i) /* LB3 N/A */ return 0; } -#define RESULT(x) (*i->cb_func)((x), i->cb_arg) + +/* #define DEBUG_LB */ + +#ifdef DEBUG_LB +#define RULE(x) ( (void)printf("%s\n", x)) +#else +#define RULE(x) ( (void)0 ) +#endif + +#define RESULT(x, msg) (RULE(msg),*i->cb_func)((x), i->cb_arg) int unicode_lb_next_cnt(unicode_lb_info_t i, const char32_t *chars, @@ -121,36 +146,62 @@ int unicode_lb_lookup(char32_t ch) int unicode_lb_next(unicode_lb_info_t i, char32_t ch) { - return (*i->next_handler)(i, (i->opts & UNICODE_LB_OPT_DASHWJ) && - (ch == 0x2012 || ch == 0x2013) - ? UNICODE_LB_WJ:unicode_lb_lookup(ch)); + state_t c; + + c.lb=unicode_lb_lookup(ch); + c.ew=unicode_eastasia(ch); + + if ((i->opts & UNICODE_LB_OPT_DASHWJ) && + (ch == 0x2012 || ch == 0x2013)) + { + c.lb=UNICODE_LB_WJ; + } + + return (*i->next_handler)(i, c); } -static int next_def_nolb25(unicode_lb_info_t i, - uint8_t uclass, - int nolb25); +static int next_def_common(unicode_lb_info_t i, + state_t uclass); + +/* +** Reset state for next_def_common. +*/ + +static void next_def_reset_common(unicode_lb_info_t i) +{ + i->nolb25=0; + i->nolb30a=0; +} /* ** Default logic for next unicode char. */ static int next_def(unicode_lb_info_t i, - uint8_t uclass) + state_t uclass) +{ + next_def_reset_common(i); + return next_def_common(i, uclass); +} + +static int next_def_seen_lb30a(unicode_lb_info_t i, + state_t uclass) { - return next_def_nolb25(i, uclass, 0); + i->next_handler=next_def; + next_def_reset_common(i); + i->nolb30a=1; + return next_def_common(i, uclass); } -static int next_def_nolb25(unicode_lb_info_t i, - uint8_t uclass, - /* Flag -- recursively invoked after discarding LB25 */ - int nolb25) +static int next_def_common(unicode_lb_info_t i, + state_t uclass) { /* Retrieve the previous unicode character's linebreak class. */ - uint8_t prevclass_min1=i->prevclass_min1; - uint8_t prevclass=i->prevclass; - uint8_t prevclass_nsp=i->prevclass_nsp; + state_t prevclass_min1=i->prevclass_min1; + state_t prevclass=i->prevclass; + state_t prevclass_nsp=i->prevclass_nsp; #define RESTORE (i->prevclass_min1=prevclass_min1, \ i->prevclass=prevclass, \ @@ -159,212 +210,217 @@ static int next_def_nolb25(unicode_lb_info_t i, i->prevclass_min1=i->prevclass; i->prevclass=uclass; - if (uclass != UNICODE_LB_SP) + if (uclass.lb != UNICODE_LB_SP) i->prevclass_nsp=uclass; - if (uclass == UNICODE_LB_NU) + if (uclass.lb == UNICODE_LB_NU) i->next_handler=next_lb25_seennu; /* LB25 */ - if (prevclass == UNICODE_LB_SOT) + if (prevclass.lb == UNICODE_LB_SOT) { - if (uclass == UNICODE_LB_CM) /* LB9 */ - i->prevclass=i->prevclass_nsp=uclass=UNICODE_LB_AL; - - return RESULT(UNICODE_LB_NONE); /* LB2 */ + return RESULT(UNICODE_LB_NONE, "LB2"); } - if (prevclass == UNICODE_LB_CR && uclass == UNICODE_LB_LF) - return RESULT(UNICODE_LB_NONE); /* LB5 */ + if (prevclass.lb == UNICODE_LB_BK) + return RESULT(UNICODE_LB_MANDATORY, "LB4"); - switch (prevclass) { - case UNICODE_LB_BK: + if (prevclass.lb == UNICODE_LB_CR && uclass.lb == UNICODE_LB_LF) + return RESULT(UNICODE_LB_NONE, "LB5"); + + + switch (prevclass.lb) { case UNICODE_LB_CR: case UNICODE_LB_LF: case UNICODE_LB_NL: + return RESULT(UNICODE_LB_MANDATORY, "LB5"); + } - if (uclass == UNICODE_LB_CM) - { - i->prevclass=i->prevclass_nsp=uclass=UNICODE_LB_AL; - /* LB9 */ - } - return RESULT(UNICODE_LB_MANDATORY); /* LB4, LB5 */ + switch (uclass.lb) { + /* LB6: */ + case UNICODE_LB_BK: + case UNICODE_LB_CR: + case UNICODE_LB_LF: + case UNICODE_LB_NL: + /* LB7: */ case UNICODE_LB_SP: case UNICODE_LB_ZW: - if (uclass == UNICODE_LB_CM) - i->prevclass=i->prevclass_nsp=uclass=UNICODE_LB_AL; - /* LB10 */ - break; + + return RESULT(UNICODE_LB_NONE, "LB6, LB7"); default: break; } - switch (uclass) { + if (prevclass_nsp.lb == UNICODE_LB_ZW) + return RESULT(UNICODE_LB_ALLOWED, "LB8"); - /* LB6: */ + + if (prevclass.lb == UNICODE_LB_ZWJ) + return RESULT(UNICODE_LB_NONE, "LB8a"); + + switch (prevclass.lb) { case UNICODE_LB_BK: case UNICODE_LB_CR: case UNICODE_LB_LF: case UNICODE_LB_NL: - - /* LB7: */ case UNICODE_LB_SP: case UNICODE_LB_ZW: - - return RESULT(UNICODE_LB_NONE); - default: break; - } + default: - if (prevclass_nsp == UNICODE_LB_ZW) - return RESULT(UNICODE_LB_ALLOWED); /* LB8 */ + if (uclass.lb == UNICODE_LB_CM || uclass.lb == UNICODE_LB_ZWJ) + { + RESTORE; + return RESULT(UNICODE_LB_NONE, "LB9"); + } + } - if (uclass == UNICODE_LB_CM) + if (uclass.lb == UNICODE_LB_CM || uclass.lb == UNICODE_LB_ZWJ) { - RESTORE; - return RESULT(UNICODE_LB_NONE); /* LB9 */ + uclass.lb=UNICODE_LB_AL; + RULE("LB10"); + } + if (prevclass.lb == UNICODE_LB_CM || prevclass.lb == UNICODE_LB_ZWJ) + { + prevclass.lb=UNICODE_LB_AL; + RULE("LB10"); } - if (prevclass == UNICODE_LB_WJ || uclass == UNICODE_LB_WJ) - return RESULT(UNICODE_LB_NONE); /* LB11 */ + if (prevclass.lb == UNICODE_LB_WJ || uclass.lb == UNICODE_LB_WJ) + return RESULT(UNICODE_LB_NONE, "LB11"); - if (prevclass == UNICODE_LB_GL) - return RESULT(UNICODE_LB_NONE); /* LB12 */ + if (prevclass.lb == UNICODE_LB_GL) + return RESULT(UNICODE_LB_NONE, "LB12"); - if (uclass == UNICODE_LB_GL && - prevclass != UNICODE_LB_SP && - prevclass != UNICODE_LB_BA && - prevclass != UNICODE_LB_HY) - return RESULT(UNICODE_LB_NONE); /* LB12a */ + if (uclass.lb == UNICODE_LB_GL && + prevclass.lb != UNICODE_LB_SP && + prevclass.lb != UNICODE_LB_BA && + prevclass.lb != UNICODE_LB_HY) + return RESULT(UNICODE_LB_NONE, "LB12a"); - switch (uclass) { - case UNICODE_LB_SY: - if (i->opts & UNICODE_LB_OPT_SYBREAK) - { - if (prevclass == UNICODE_LB_SP) - return RESULT(UNICODE_LB_ALLOWED); - } + if (uclass.lb == UNICODE_LB_SY && + i->opts & UNICODE_LB_OPT_SYBREAK) + { + if (prevclass.lb == UNICODE_LB_SP) + return RESULT(UNICODE_LB_ALLOWED, "LB13 (tailored)"); + } - case UNICODE_LB_CL: - case UNICODE_LB_CP: - case UNICODE_LB_EX: - case UNICODE_LB_IS: - return RESULT(UNICODE_LB_NONE); /* LB13 */ - default: - break; + if (prevclass.lb != UNICODE_LB_NU) { + switch (uclass.lb) { + case UNICODE_LB_CL: + case UNICODE_LB_CP: + case UNICODE_LB_IS: + case UNICODE_LB_SY: + return RESULT(UNICODE_LB_NONE, "LB13"); + default: + break; + } } - if ((i->opts & UNICODE_LB_OPT_SYBREAK) && prevclass == UNICODE_LB_SY) - switch (uclass) { + if (uclass.lb == UNICODE_LB_EX) + return RESULT(UNICODE_LB_NONE, "LB13"); + + if ((i->opts & UNICODE_LB_OPT_SYBREAK) && prevclass.lb == UNICODE_LB_SY) + switch (uclass.lb) { case UNICODE_LB_EX: case UNICODE_LB_AL: case UNICODE_LB_ID: - return RESULT(UNICODE_LB_NONE); + return RESULT(UNICODE_LB_NONE, "LB13"); } - if (prevclass_nsp == UNICODE_LB_OP) - return RESULT(UNICODE_LB_NONE); /* LB14 */ - - if (prevclass_nsp == UNICODE_LB_QU && uclass == UNICODE_LB_OP) - return RESULT(UNICODE_LB_NONE); /* LB15 */ + if (prevclass_nsp.lb == UNICODE_LB_OP) + return RESULT(UNICODE_LB_NONE, "LB14"); - if ((prevclass_nsp == UNICODE_LB_CL || prevclass_nsp == UNICODE_LB_CP) - && uclass == UNICODE_LB_NS) - return RESULT(UNICODE_LB_NONE); /* LB16 */ + if (prevclass_nsp.lb == UNICODE_LB_QU && uclass.lb == UNICODE_LB_OP) + return RESULT(UNICODE_LB_NONE, "LB15"); - if (prevclass_nsp == UNICODE_LB_B2 && uclass == UNICODE_LB_B2) - return RESULT(UNICODE_LB_NONE); /* LB17 */ + if ((prevclass_nsp.lb == UNICODE_LB_CL || prevclass_nsp.lb == UNICODE_LB_CP) + && uclass.lb == UNICODE_LB_NS) + return RESULT(UNICODE_LB_NONE, "LB16"); - if (prevclass == UNICODE_LB_SP) - return RESULT(UNICODE_LB_ALLOWED); /* LB18 */ + if (prevclass_nsp.lb == UNICODE_LB_B2 && uclass.lb == UNICODE_LB_B2) + return RESULT(UNICODE_LB_NONE, "LB17"); - if (uclass == UNICODE_LB_QU || prevclass == UNICODE_LB_QU) - return RESULT(UNICODE_LB_NONE); /* LB19 */ + if (prevclass.lb == UNICODE_LB_SP) + return RESULT(UNICODE_LB_ALLOWED, "LB18"); - if (uclass == UNICODE_LB_CB || prevclass == UNICODE_LB_CB) - return RESULT(UNICODE_LB_ALLOWED); /* LB20 */ + if (uclass.lb == UNICODE_LB_QU || prevclass.lb == UNICODE_LB_QU) + return RESULT(UNICODE_LB_NONE, "LB19"); - /* LB21: */ + if (uclass.lb == UNICODE_LB_CB || prevclass.lb == UNICODE_LB_CB) + return RESULT(UNICODE_LB_ALLOWED, "LB20"); - switch (uclass) { + switch (uclass.lb) { case UNICODE_LB_BA: case UNICODE_LB_HY: case UNICODE_LB_NS: - return RESULT(UNICODE_LB_NONE); + return RESULT(UNICODE_LB_NONE, "LB21"); default: break; } - if (prevclass == UNICODE_LB_BB) - return RESULT(UNICODE_LB_NONE); + if (prevclass.lb == UNICODE_LB_BB) + return RESULT(UNICODE_LB_NONE, "LB21"); - /* LB21a: */ - if (prevclass_min1 == UNICODE_LB_HL && - (prevclass == UNICODE_LB_HY || prevclass == UNICODE_LB_BA)) - return RESULT(UNICODE_LB_NONE); + if (prevclass_min1.lb == UNICODE_LB_HL && + (prevclass.lb == UNICODE_LB_HY || prevclass.lb == UNICODE_LB_BA)) + return RESULT(UNICODE_LB_NONE, "LB21a"); - /* LB21b: */ - if (prevclass == UNICODE_LB_SY && uclass == UNICODE_LB_HL) - return RESULT(UNICODE_LB_NONE); + if (prevclass.lb == UNICODE_LB_SY && uclass.lb == UNICODE_LB_HL) + return RESULT(UNICODE_LB_NONE, "LB21b"); - if (uclass == UNICODE_LB_IN) - switch (prevclass) { - case UNICODE_LB_AL: - case UNICODE_LB_EX: - case UNICODE_LB_HL: - case UNICODE_LB_ID: - case UNICODE_LB_IN: - case UNICODE_LB_NU: - return RESULT(UNICODE_LB_NONE); /* LB22 */ - default: - break; - } + if (uclass.lb == UNICODE_LB_IN) + return RESULT(UNICODE_LB_NONE, "LB22"); + + if (prevclass.lb == UNICODE_LB_AL && uclass.lb == UNICODE_LB_NU) + return RESULT(UNICODE_LB_NONE, "LB23"); + if (prevclass.lb == UNICODE_LB_HL && uclass.lb == UNICODE_LB_NU) + return RESULT(UNICODE_LB_NONE, "LB23"); + + if (prevclass.lb == UNICODE_LB_NU && uclass.lb == UNICODE_LB_AL) + return RESULT(UNICODE_LB_NONE, "LB23"); + if (prevclass.lb == UNICODE_LB_NU && uclass.lb == UNICODE_LB_HL) + return RESULT(UNICODE_LB_NONE, "LB23"); - if (prevclass == UNICODE_LB_ID && uclass == UNICODE_LB_PO) - return RESULT(UNICODE_LB_NONE); /* LB23 */ - if (prevclass == UNICODE_LB_AL && uclass == UNICODE_LB_NU) - return RESULT(UNICODE_LB_NONE); /* LB23 */ - if (prevclass == UNICODE_LB_HL && uclass == UNICODE_LB_NU) - return RESULT(UNICODE_LB_NONE); /* LB23 */ - - if (prevclass == UNICODE_LB_NU && uclass == UNICODE_LB_AL) - return RESULT(UNICODE_LB_NONE); /* LB23 */ - if (prevclass == UNICODE_LB_NU && uclass == UNICODE_LB_HL) - return RESULT(UNICODE_LB_NONE); /* LB23 */ - - - if (prevclass == UNICODE_LB_PR && uclass == UNICODE_LB_ID) - return RESULT(UNICODE_LB_NONE); /* LB24 */ - if (prevclass == UNICODE_LB_PR && uclass == UNICODE_LB_AL) - return RESULT(UNICODE_LB_NONE); /* LB24 */ - if (prevclass == UNICODE_LB_PR && uclass == UNICODE_LB_HL) - return RESULT(UNICODE_LB_NONE); /* LB24 */ - if (prevclass == UNICODE_LB_PO && uclass == UNICODE_LB_AL) - return RESULT(UNICODE_LB_NONE); /* LB24 */ - if (prevclass == UNICODE_LB_PO && uclass == UNICODE_LB_HL) - return RESULT(UNICODE_LB_NONE); /* LB24 */ - - if ((i->opts & UNICODE_LB_OPT_PRBREAK) && uclass == UNICODE_LB_PR) - switch (prevclass) { + if (prevclass.lb == UNICODE_LB_PR && + (uclass.lb == UNICODE_LB_ID || uclass.lb == UNICODE_LB_EB || + uclass.lb == UNICODE_LB_EM)) + return RESULT(UNICODE_LB_NONE, "LB23a"); + + if ((prevclass.lb == UNICODE_LB_ID || prevclass.lb == UNICODE_LB_EB || + prevclass.lb == UNICODE_LB_EM) && + uclass.lb == UNICODE_LB_PO) + return RESULT(UNICODE_LB_NONE, "LB23a"); + + if ((prevclass.lb == UNICODE_LB_PR || prevclass.lb == UNICODE_LB_PO) && + (uclass.lb == UNICODE_LB_AL || uclass.lb == UNICODE_LB_HL)) + return RESULT(UNICODE_LB_NONE, "LB24"); + + if ((prevclass.lb == UNICODE_LB_AL || prevclass.lb == UNICODE_LB_HL) && + (uclass.lb == UNICODE_LB_PR || uclass.lb == UNICODE_LB_PO)) + return RESULT(UNICODE_LB_NONE, "LB24"); + + if ((i->opts & UNICODE_LB_OPT_PRBREAK) && uclass.lb == UNICODE_LB_PR) + switch (prevclass.lb) { case UNICODE_LB_PR: case UNICODE_LB_AL: case UNICODE_LB_ID: - return RESULT(UNICODE_LB_NONE); + return RESULT(UNICODE_LB_NONE, "LB24 (tailored)"); } - if (!nolb25 && - (prevclass == UNICODE_LB_PR || prevclass == UNICODE_LB_PO)) + if (!i->nolb25 && + (prevclass.lb == UNICODE_LB_PR || prevclass.lb == UNICODE_LB_PO)) { - if (uclass == UNICODE_LB_NU) - return RESULT(UNICODE_LB_NONE); /* LB25 */ + if (uclass.lb == UNICODE_LB_NU) + return RESULT(UNICODE_LB_NONE, "LB25"); - if (uclass == UNICODE_LB_OP || uclass == UNICODE_LB_HY) + if (uclass.lb == UNICODE_LB_OP || uclass.lb == UNICODE_LB_HY) { RESTORE; - + RULE("LB25 (start)"); i->savedclass=uclass; i->savedcmcnt=0; i->next_handler=next_lb25_seenophy; @@ -373,81 +429,93 @@ static int next_def_nolb25(unicode_lb_info_t i, } } - if ((prevclass == UNICODE_LB_OP || prevclass == UNICODE_LB_HY) && - uclass == UNICODE_LB_NU) - return RESULT(UNICODE_LB_NONE); /* LB25 */ + if ((prevclass.lb == UNICODE_LB_OP || prevclass.lb == UNICODE_LB_HY) && + uclass.lb == UNICODE_LB_NU) + return RESULT(UNICODE_LB_NONE, "LB25"); /*****/ - if (prevclass == UNICODE_LB_JL) - switch (uclass) { + if (prevclass.lb == UNICODE_LB_JL) + switch (uclass.lb) { case UNICODE_LB_JL: case UNICODE_LB_JV: case UNICODE_LB_H2: case UNICODE_LB_H3: - return RESULT(UNICODE_LB_NONE); /* LB26 */ + return RESULT(UNICODE_LB_NONE, "LB26"); default: break; } - if ((prevclass == UNICODE_LB_JV || - prevclass == UNICODE_LB_H2) && - (uclass == UNICODE_LB_JV || - uclass == UNICODE_LB_JT)) - return RESULT(UNICODE_LB_NONE); /* LB26 */ + if ((prevclass.lb == UNICODE_LB_JV || + prevclass.lb == UNICODE_LB_H2) && + (uclass.lb == UNICODE_LB_JV || + uclass.lb == UNICODE_LB_JT)) + return RESULT(UNICODE_LB_NONE, "LB26"); - if ((prevclass == UNICODE_LB_JT || - prevclass == UNICODE_LB_H3) && - uclass == UNICODE_LB_JT) - return RESULT(UNICODE_LB_NONE); /* LB26 */ + if ((prevclass.lb == UNICODE_LB_JT || + prevclass.lb == UNICODE_LB_H3) && + uclass.lb == UNICODE_LB_JT) + return RESULT(UNICODE_LB_NONE, "LB26"); - switch (prevclass) { + switch (prevclass.lb) { case UNICODE_LB_JL: case UNICODE_LB_JV: case UNICODE_LB_JT: case UNICODE_LB_H2: case UNICODE_LB_H3: - if (uclass == UNICODE_LB_IN || uclass == UNICODE_LB_PO) - return RESULT(UNICODE_LB_NONE); /* LB27 */ + if (uclass.lb == UNICODE_LB_IN || uclass.lb == UNICODE_LB_PO) + return RESULT(UNICODE_LB_NONE, "LB27"); default: break; } - switch (uclass) { + switch (uclass.lb) { case UNICODE_LB_JL: case UNICODE_LB_JV: case UNICODE_LB_JT: case UNICODE_LB_H2: case UNICODE_LB_H3: - if (prevclass == UNICODE_LB_PR) - return RESULT(UNICODE_LB_NONE); /* LB27 */ + if (prevclass.lb == UNICODE_LB_PR) + return RESULT(UNICODE_LB_NONE, "LB27"); default: break; } - if ((prevclass == UNICODE_LB_AL || prevclass == UNICODE_LB_HL) - && (uclass == UNICODE_LB_AL || uclass == UNICODE_LB_HL)) - return RESULT(UNICODE_LB_NONE); /* LB28 */ - - if (prevclass == UNICODE_LB_IS && - (uclass == UNICODE_LB_AL || uclass == UNICODE_LB_HL)) - return RESULT(UNICODE_LB_NONE); /* LB29 */ - - if ((prevclass == UNICODE_LB_AL || prevclass == UNICODE_LB_HL - || prevclass == UNICODE_LB_NU) && - uclass == UNICODE_LB_OP) - return RESULT(UNICODE_LB_NONE); /* LB30 */ - - if ((uclass == UNICODE_LB_AL || uclass == UNICODE_LB_HL - || uclass == UNICODE_LB_NU) && - prevclass == UNICODE_LB_CP) - return RESULT(UNICODE_LB_NONE); /* LB30 */ + if ((prevclass.lb == UNICODE_LB_AL || prevclass.lb == UNICODE_LB_HL) + && (uclass.lb == UNICODE_LB_AL || uclass.lb == UNICODE_LB_HL)) + return RESULT(UNICODE_LB_NONE, "LB28"); + + if (prevclass.lb == UNICODE_LB_IS && + (uclass.lb == UNICODE_LB_AL || uclass.lb == UNICODE_LB_HL)) + return RESULT(UNICODE_LB_NONE, "LB29"); + + if ((prevclass.lb == UNICODE_LB_AL || prevclass.lb == UNICODE_LB_HL + || prevclass.lb == UNICODE_LB_NU) && + (uclass.lb == UNICODE_LB_OP && uclass.ew != UNICODE_EASTASIA_F + && uclass.ew != UNICODE_EASTASIA_W + && uclass.ew != UNICODE_EASTASIA_H)) + return RESULT(UNICODE_LB_NONE, "LB30"); + + if ((uclass.lb == UNICODE_LB_AL || uclass.lb == UNICODE_LB_HL + || uclass.lb == UNICODE_LB_NU) && + (prevclass.lb == UNICODE_LB_CP + && prevclass.ew != UNICODE_EASTASIA_F + && prevclass.ew != UNICODE_EASTASIA_W + && prevclass.ew != UNICODE_EASTASIA_H)) + return RESULT(UNICODE_LB_NONE, "LB30"); + + if (uclass.lb == UNICODE_LB_RI && prevclass.lb == UNICODE_LB_RI && + !i->nolb30a) + { + i->next_handler=next_def_seen_lb30a; + return RESULT(UNICODE_LB_NONE, "LB30a"); + } - if (uclass == UNICODE_LB_RI && prevclass == UNICODE_LB_RI) - return RESULT(UNICODE_LB_NONE); /* LB30a */ + if (prevclass.lb == UNICODE_LB_EB && uclass.lb == UNICODE_LB_EM) + return RESULT(UNICODE_LB_NONE, "LB30b"); - return RESULT(UNICODE_LB_ALLOWED); /* LB31 */ + return RESULT(UNICODE_LB_ALLOWED, "LB31"); } /* @@ -459,7 +527,7 @@ static int unwind_lb25_seenophy(unicode_lb_info_t i) { int rc; - /*uint8_t class=i->savedclass;*/ + /*state_t class=i->savedclass;*/ int nolb25_flag=1; i->next_handler=next_def; @@ -467,7 +535,9 @@ static int unwind_lb25_seenophy(unicode_lb_info_t i) do { - rc=next_def_nolb25(i, i->savedclass, nolb25_flag); + next_def_reset_common(i); + i->nolb25=nolb25_flag; + rc=next_def_common(i, i->savedclass); if (rc) return rc; @@ -484,29 +554,29 @@ static int unwind_lb25_seenophy(unicode_lb_info_t i) */ static int next_lb25_seenophy(unicode_lb_info_t i, - uint8_t uclass) + state_t uclass) { int rc; - if (uclass == UNICODE_LB_CM) + if (uclass.lb == UNICODE_LB_CM) { ++i->savedcmcnt; /* Keep track of CMs, and try again */ return 0; } - if (uclass != UNICODE_LB_NU) + if (uclass.lb != UNICODE_LB_NU) { rc=unwind_lb25_seenophy(i); if (rc) return rc; - return next_def_nolb25(i, uclass, 0); + return next_def(i, uclass); } do { - rc=RESULT(UNICODE_LB_NONE); /* (OP|HY) feedback */ + rc=RESULT(UNICODE_LB_NONE, "LB25 (OP|HY)"); /* (OP|HY) feedback */ if (rc) return rc; @@ -515,7 +585,7 @@ static int next_lb25_seenophy(unicode_lb_info_t i, i->next_handler=next_lb25_seennu; i->end_handler=end_def; i->prevclass=i->prevclass_nsp=uclass; - return RESULT(UNICODE_LB_NONE); + return RESULT(UNICODE_LB_NONE, "LB25"); } /* @@ -534,33 +604,33 @@ static int end_lb25_seenophy(unicode_lb_info_t i) /* ** Seen an NU, modified LB25 regexp. */ -static int next_lb25_seennu(unicode_lb_info_t i, uint8_t uclass) +static int next_lb25_seennu(unicode_lb_info_t i, state_t uclass) { - if (uclass == UNICODE_LB_NU || uclass == UNICODE_LB_SY || - uclass == UNICODE_LB_IS) + if (uclass.lb == UNICODE_LB_NU || uclass.lb == UNICODE_LB_SY || + uclass.lb == UNICODE_LB_IS) { i->prevclass=i->prevclass_nsp=uclass; - return RESULT(UNICODE_LB_NONE); + return RESULT(UNICODE_LB_NONE, "LB25"); } - if (uclass == UNICODE_LB_CM) - return RESULT(UNICODE_LB_NONE); /* LB9 */ + if (uclass.lb == UNICODE_LB_CM || uclass.lb == UNICODE_LB_ZWJ) + return RESULT(UNICODE_LB_NONE, "LB9 (LB25)"); - if (uclass == UNICODE_LB_CL || uclass == UNICODE_LB_CP) + if (uclass.lb == UNICODE_LB_CL || uclass.lb == UNICODE_LB_CP) { i->prevclass=i->prevclass_nsp=uclass; i->next_handler=next_lb25_seennuclcp; i->end_handler=end_def; - return RESULT(UNICODE_LB_NONE); + return RESULT(UNICODE_LB_NONE, "LB25"); } i->next_handler=next_def; i->end_handler=end_def; - if (uclass == UNICODE_LB_PR || uclass == UNICODE_LB_PO) + if (uclass.lb == UNICODE_LB_PR || uclass.lb == UNICODE_LB_PO) { i->prevclass=i->prevclass_nsp=uclass; - return RESULT(UNICODE_LB_NONE); + return RESULT(UNICODE_LB_NONE, "LB25"); } return next_def(i, uclass); /* Not a prefix, process normally */ @@ -569,19 +639,19 @@ static int next_lb25_seennu(unicode_lb_info_t i, uint8_t uclass) /* ** Seen CL|CP, in the modified LB25 regexp. */ -static int next_lb25_seennuclcp(unicode_lb_info_t i, uint8_t uclass) +static int next_lb25_seennuclcp(unicode_lb_info_t i, state_t uclass) { - if (uclass == UNICODE_LB_CM) - return RESULT(UNICODE_LB_NONE); /* LB9 */ + if (uclass.lb == UNICODE_LB_CM || uclass.lb == UNICODE_LB_ZWJ) + return RESULT(UNICODE_LB_NONE, "LB9 (LB25)"); i->next_handler=next_def; i->end_handler=end_def; - if (uclass == UNICODE_LB_PR || uclass == UNICODE_LB_PO) + if (uclass.lb == UNICODE_LB_PR || uclass.lb == UNICODE_LB_PO) { i->prevclass=i->prevclass_nsp=uclass; - return RESULT(UNICODE_LB_NONE); + return RESULT(UNICODE_LB_NONE, "LB25"); } return next_def(i, uclass); diff --git a/unicode/unicode_ultcasetab.c b/unicode/unicode_ultcasetab.c index 5b8fee2..43a97df 100644 --- a/unicode/unicode_ultcasetab.c +++ b/unicode/unicode_ultcasetab.c @@ -7,7 +7,7 @@ #include "courier-unicode.h" const unsigned unicode_case_hash=2048; -/* unicode_case_maxbucket=6*/ +/* unicode_case_maxbucket=7*/ const char32_t unicode_case_tab[][4]={ {0x0041,0x0041,0x0061,0x0041},{0x0042,0x0042,0x0062,0x0042},{0x0043,0x0043,0x0063,0x0043},{0x0044,0x0044,0x0064,0x0044}, {0x0045,0x0045,0x0065,0x0045},{0x0046,0x0046,0x0066,0x0046},{0x0047,0x0047,0x0067,0x0047},{0x0048,0x0048,0x0068,0x0048}, @@ -22,437 +22,498 @@ const char32_t unicode_case_tab[][4]={ {0x006f,0x004f,0x006f,0x004f},{0x0070,0x0050,0x0070,0x0050},{0x0071,0x0051,0x0071,0x0051},{0x0072,0x0052,0x0072,0x0052}, {0x0073,0x0053,0x0073,0x0053},{0x0074,0x0054,0x0074,0x0054},{0x0075,0x0055,0x0075,0x0055},{0x0076,0x0056,0x0076,0x0056}, {0x0077,0x0057,0x0077,0x0057},{0x0078,0x0058,0x0078,0x0058},{0x0079,0x0059,0x0079,0x0059},{0x007a,0x005a,0x007a,0x005a}, -{0x10a0,0x10a0,0x2d00,0x10a0},{0x118a0,0x118a0,0x118c0,0x118a0},{0x118a1,0x118a1,0x118c1,0x118a1},{0x10a1,0x10a1,0x2d01,0x10a1}, -{0x118a2,0x118a2,0x118c2,0x118a2},{0x10a2,0x10a2,0x2d02,0x10a2},{0x118a3,0x118a3,0x118c3,0x118a3},{0x10a3,0x10a3,0x2d03,0x10a3}, -{0x118a4,0x118a4,0x118c4,0x118a4},{0x10a4,0x10a4,0x2d04,0x10a4},{0x118a5,0x118a5,0x118c5,0x118a5},{0x10a5,0x10a5,0x2d05,0x10a5}, -{0x118a6,0x118a6,0x118c6,0x118a6},{0x10a6,0x10a6,0x2d06,0x10a6},{0x118a7,0x118a7,0x118c7,0x118a7},{0x10a7,0x10a7,0x2d07,0x10a7}, -{0x10a8,0x10a8,0x2d08,0x10a8},{0x118a8,0x118a8,0x118c8,0x118a8},{0x118a9,0x118a9,0x118c9,0x118a9},{0x10a9,0x10a9,0x2d09,0x10a9}, -{0x10aa,0x10aa,0x2d0a,0x10aa},{0x118aa,0x118aa,0x118ca,0x118aa},{0x118ab,0x118ab,0x118cb,0x118ab},{0x10ab,0x10ab,0x2d0b,0x10ab}, +{0x118a0,0x118a0,0x118c0,0x118a0},{0x10a0,0x10a0,0x2d00,0x10a0},{0x10a1,0x10a1,0x2d01,0x10a1},{0x118a1,0x118a1,0x118c1,0x118a1}, +{0x10a2,0x10a2,0x2d02,0x10a2},{0x118a2,0x118a2,0x118c2,0x118a2},{0x10a3,0x10a3,0x2d03,0x10a3},{0x118a3,0x118a3,0x118c3,0x118a3}, +{0x10a4,0x10a4,0x2d04,0x10a4},{0x118a4,0x118a4,0x118c4,0x118a4},{0x10a5,0x10a5,0x2d05,0x10a5},{0x118a5,0x118a5,0x118c5,0x118a5}, +{0x10a6,0x10a6,0x2d06,0x10a6},{0x118a6,0x118a6,0x118c6,0x118a6},{0x10a7,0x10a7,0x2d07,0x10a7},{0x118a7,0x118a7,0x118c7,0x118a7}, +{0x118a8,0x118a8,0x118c8,0x118a8},{0x10a8,0x10a8,0x2d08,0x10a8},{0x118a9,0x118a9,0x118c9,0x118a9},{0x10a9,0x10a9,0x2d09,0x10a9}, +{0x118aa,0x118aa,0x118ca,0x118aa},{0x10aa,0x10aa,0x2d0a,0x10aa},{0x10ab,0x10ab,0x2d0b,0x10ab},{0x118ab,0x118ab,0x118cb,0x118ab}, {0x10ac,0x10ac,0x2d0c,0x10ac},{0x118ac,0x118ac,0x118cc,0x118ac},{0x10ad,0x10ad,0x2d0d,0x10ad},{0x118ad,0x118ad,0x118cd,0x118ad}, -{0x118ae,0x118ae,0x118ce,0x118ae},{0x10ae,0x10ae,0x2d0e,0x10ae},{0x10af,0x10af,0x2d0f,0x10af},{0x118af,0x118af,0x118cf,0x118af}, -{0x10b0,0x10b0,0x2d10,0x10b0},{0x118b0,0x118b0,0x118d0,0x118b0},{0x10b1,0x10b1,0x2d11,0x10b1},{0x118b1,0x118b1,0x118d1,0x118b1}, +{0x10ae,0x10ae,0x2d0e,0x10ae},{0x118ae,0x118ae,0x118ce,0x118ae},{0x118af,0x118af,0x118cf,0x118af},{0x10af,0x10af,0x2d0f,0x10af}, +{0x118b0,0x118b0,0x118d0,0x118b0},{0x10b0,0x10b0,0x2d10,0x10b0},{0x10b1,0x10b1,0x2d11,0x10b1},{0x118b1,0x118b1,0x118d1,0x118b1}, {0x10b2,0x10b2,0x2d12,0x10b2},{0x118b2,0x118b2,0x118d2,0x118b2},{0x10b3,0x10b3,0x2d13,0x10b3},{0x118b3,0x118b3,0x118d3,0x118b3}, {0x10b4,0x10b4,0x2d14,0x10b4},{0x118b4,0x118b4,0x118d4,0x118b4},{0x118b5,0x118b5,0x118d5,0x118b5},{0x00b5,0x039c,0x00b5,0x039c}, -{0x10b5,0x10b5,0x2d15,0x10b5},{0x10b6,0x10b6,0x2d16,0x10b6},{0x118b6,0x118b6,0x118d6,0x118b6},{0x10b7,0x10b7,0x2d17,0x10b7}, -{0x118b7,0x118b7,0x118d7,0x118b7},{0x118b8,0x118b8,0x118d8,0x118b8},{0x10b8,0x10b8,0x2d18,0x10b8},{0x118b9,0x118b9,0x118d9,0x118b9}, -{0x10b9,0x10b9,0x2d19,0x10b9},{0x118ba,0x118ba,0x118da,0x118ba},{0x10ba,0x10ba,0x2d1a,0x10ba},{0x118bb,0x118bb,0x118db,0x118bb}, -{0x10bb,0x10bb,0x2d1b,0x10bb},{0x10bc,0x10bc,0x2d1c,0x10bc},{0x118bc,0x118bc,0x118dc,0x118bc},{0x118bd,0x118bd,0x118dd,0x118bd}, -{0x10bd,0x10bd,0x2d1d,0x10bd},{0x118be,0x118be,0x118de,0x118be},{0x10be,0x10be,0x2d1e,0x10be},{0x118bf,0x118bf,0x118df,0x118bf}, -{0x10bf,0x10bf,0x2d1f,0x10bf},{0x10c0,0x10c0,0x2d20,0x10c0},{0x118c0,0x118a0,0x118c0,0x118a0},{0x00c0,0x00c0,0x00e0,0x00c0}, -{0x00c1,0x00c1,0x00e1,0x00c1},{0x10c1,0x10c1,0x2d21,0x10c1},{0x118c1,0x118a1,0x118c1,0x118a1},{0x118c2,0x118a2,0x118c2,0x118a2}, -{0x00c2,0x00c2,0x00e2,0x00c2},{0x10c2,0x10c2,0x2d22,0x10c2},{0x10c3,0x10c3,0x2d23,0x10c3},{0x118c3,0x118a3,0x118c3,0x118a3}, -{0x00c3,0x00c3,0x00e3,0x00c3},{0x10c4,0x10c4,0x2d24,0x10c4},{0x118c4,0x118a4,0x118c4,0x118a4},{0x00c4,0x00c4,0x00e4,0x00c4}, +{0x10b5,0x10b5,0x2d15,0x10b5},{0x118b6,0x118b6,0x118d6,0x118b6},{0x10b6,0x10b6,0x2d16,0x10b6},{0x118b7,0x118b7,0x118d7,0x118b7}, +{0x10b7,0x10b7,0x2d17,0x10b7},{0x10b8,0x10b8,0x2d18,0x10b8},{0x118b8,0x118b8,0x118d8,0x118b8},{0x118b9,0x118b9,0x118d9,0x118b9}, +{0x10b9,0x10b9,0x2d19,0x10b9},{0x10ba,0x10ba,0x2d1a,0x10ba},{0x118ba,0x118ba,0x118da,0x118ba},{0x10bb,0x10bb,0x2d1b,0x10bb}, +{0x118bb,0x118bb,0x118db,0x118bb},{0x118bc,0x118bc,0x118dc,0x118bc},{0x10bc,0x10bc,0x2d1c,0x10bc},{0x118bd,0x118bd,0x118dd,0x118bd}, +{0x10bd,0x10bd,0x2d1d,0x10bd},{0x118be,0x118be,0x118de,0x118be},{0x10be,0x10be,0x2d1e,0x10be},{0x10bf,0x10bf,0x2d1f,0x10bf}, +{0x118bf,0x118bf,0x118df,0x118bf},{0x10c0,0x10c0,0x2d20,0x10c0},{0x118c0,0x118a0,0x118c0,0x118a0},{0x00c0,0x00c0,0x00e0,0x00c0}, +{0x10c1,0x10c1,0x2d21,0x10c1},{0x00c1,0x00c1,0x00e1,0x00c1},{0x118c1,0x118a1,0x118c1,0x118a1},{0x118c2,0x118a2,0x118c2,0x118a2}, +{0x10c2,0x10c2,0x2d22,0x10c2},{0x00c2,0x00c2,0x00e2,0x00c2},{0x00c3,0x00c3,0x00e3,0x00c3},{0x118c3,0x118a3,0x118c3,0x118a3}, +{0x10c3,0x10c3,0x2d23,0x10c3},{0x00c4,0x00c4,0x00e4,0x00c4},{0x118c4,0x118a4,0x118c4,0x118a4},{0x10c4,0x10c4,0x2d24,0x10c4}, {0x118c5,0x118a5,0x118c5,0x118a5},{0x10c5,0x10c5,0x2d25,0x10c5},{0x00c5,0x00c5,0x00e5,0x00c5},{0x00c6,0x00c6,0x00e6,0x00c6}, {0x118c6,0x118a6,0x118c6,0x118a6},{0x10c7,0x10c7,0x2d27,0x10c7},{0x118c7,0x118a7,0x118c7,0x118a7},{0x00c7,0x00c7,0x00e7,0x00c7}, -{0x118c8,0x118a8,0x118c8,0x118a8},{0x00c8,0x00c8,0x00e8,0x00c8},{0x118c9,0x118a9,0x118c9,0x118a9},{0x00c9,0x00c9,0x00e9,0x00c9}, -{0x00ca,0x00ca,0x00ea,0x00ca},{0x118ca,0x118aa,0x118ca,0x118aa},{0x00cb,0x00cb,0x00eb,0x00cb},{0x118cb,0x118ab,0x118cb,0x118ab}, -{0x118cc,0x118ac,0x118cc,0x118ac},{0x00cc,0x00cc,0x00ec,0x00cc},{0x118cd,0x118ad,0x118cd,0x118ad},{0x10cd,0x10cd,0x2d2d,0x10cd}, -{0x00cd,0x00cd,0x00ed,0x00cd},{0x00ce,0x00ce,0x00ee,0x00ce},{0x118ce,0x118ae,0x118ce,0x118ae},{0x00cf,0x00cf,0x00ef,0x00cf}, -{0x118cf,0x118af,0x118cf,0x118af},{0x118d0,0x118b0,0x118d0,0x118b0},{0x00d0,0x00d0,0x00f0,0x00d0},{0x00d1,0x00d1,0x00f1,0x00d1}, -{0x118d1,0x118b1,0x118d1,0x118b1},{0x00d2,0x00d2,0x00f2,0x00d2},{0x118d2,0x118b2,0x118d2,0x118b2},{0x00d3,0x00d3,0x00f3,0x00d3}, -{0x118d3,0x118b3,0x118d3,0x118b3},{0x118d4,0x118b4,0x118d4,0x118b4},{0x00d4,0x00d4,0x00f4,0x00d4},{0x118d5,0x118b5,0x118d5,0x118b5}, -{0x00d5,0x00d5,0x00f5,0x00d5},{0x00d6,0x00d6,0x00f6,0x00d6},{0x118d6,0x118b6,0x118d6,0x118b6},{0x118d7,0x118b7,0x118d7,0x118b7}, -{0x00d8,0x00d8,0x00f8,0x00d8},{0x118d8,0x118b8,0x118d8,0x118b8},{0x118d9,0x118b9,0x118d9,0x118b9},{0x00d9,0x00d9,0x00f9,0x00d9}, -{0x00da,0x00da,0x00fa,0x00da},{0x118da,0x118ba,0x118da,0x118ba},{0x00db,0x00db,0x00fb,0x00db},{0x118db,0x118bb,0x118db,0x118bb}, -{0x118dc,0x118bc,0x118dc,0x118bc},{0x00dc,0x00dc,0x00fc,0x00dc},{0x118dd,0x118bd,0x118dd,0x118bd},{0x00dd,0x00dd,0x00fd,0x00dd}, -{0x00de,0x00de,0x00fe,0x00de},{0x118de,0x118be,0x118de,0x118be},{0x118df,0x118bf,0x118df,0x118bf},{0x00e0,0x00c0,0x00e0,0x00c0}, -{0x00e1,0x00c1,0x00e1,0x00c1},{0x00e2,0x00c2,0x00e2,0x00c2},{0x00e3,0x00c3,0x00e3,0x00c3},{0x00e4,0x00c4,0x00e4,0x00c4}, -{0x00e5,0x00c5,0x00e5,0x00c5},{0x00e6,0x00c6,0x00e6,0x00c6},{0x00e7,0x00c7,0x00e7,0x00c7},{0x00e8,0x00c8,0x00e8,0x00c8}, -{0x00e9,0x00c9,0x00e9,0x00c9},{0x00ea,0x00ca,0x00ea,0x00ca},{0x00eb,0x00cb,0x00eb,0x00cb},{0x00ec,0x00cc,0x00ec,0x00cc}, -{0x00ed,0x00cd,0x00ed,0x00cd},{0x00ee,0x00ce,0x00ee,0x00ce},{0x00ef,0x00cf,0x00ef,0x00cf},{0x00f0,0x00d0,0x00f0,0x00d0}, -{0x00f1,0x00d1,0x00f1,0x00d1},{0x00f2,0x00d2,0x00f2,0x00d2},{0x00f3,0x00d3,0x00f3,0x00d3},{0x00f4,0x00d4,0x00f4,0x00d4}, -{0x00f5,0x00d5,0x00f5,0x00d5},{0x00f6,0x00d6,0x00f6,0x00d6},{0x00f8,0x00d8,0x00f8,0x00d8},{0x00f9,0x00d9,0x00f9,0x00d9}, -{0x00fa,0x00da,0x00fa,0x00da},{0x00fb,0x00db,0x00fb,0x00db},{0x00fc,0x00dc,0x00fc,0x00dc},{0x00fd,0x00dd,0x00fd,0x00dd}, -{0x00fe,0x00de,0x00fe,0x00de},{0x00ff,0x0178,0x00ff,0x0178},{0x0100,0x0100,0x0101,0x0100},{0x0101,0x0100,0x0101,0x0100}, -{0x0102,0x0102,0x0103,0x0102},{0x0103,0x0102,0x0103,0x0102},{0x0104,0x0104,0x0105,0x0104},{0x0105,0x0104,0x0105,0x0104}, -{0x0106,0x0106,0x0107,0x0106},{0x0107,0x0106,0x0107,0x0106},{0x0108,0x0108,0x0109,0x0108},{0x0109,0x0108,0x0109,0x0108}, -{0x010a,0x010a,0x010b,0x010a},{0x010b,0x010a,0x010b,0x010a},{0x010c,0x010c,0x010d,0x010c},{0x010d,0x010c,0x010d,0x010c}, -{0x010e,0x010e,0x010f,0x010e},{0x010f,0x010e,0x010f,0x010e},{0x0110,0x0110,0x0111,0x0110},{0x0111,0x0110,0x0111,0x0110}, -{0x0112,0x0112,0x0113,0x0112},{0x0113,0x0112,0x0113,0x0112},{0x0114,0x0114,0x0115,0x0114},{0x0115,0x0114,0x0115,0x0114}, -{0x0116,0x0116,0x0117,0x0116},{0x0117,0x0116,0x0117,0x0116},{0x0118,0x0118,0x0119,0x0118},{0x0119,0x0118,0x0119,0x0118}, -{0x011a,0x011a,0x011b,0x011a},{0x011b,0x011a,0x011b,0x011a},{0x011c,0x011c,0x011d,0x011c},{0x011d,0x011c,0x011d,0x011c}, -{0x011e,0x011e,0x011f,0x011e},{0x011f,0x011e,0x011f,0x011e},{0x0120,0x0120,0x0121,0x0120},{0x0121,0x0120,0x0121,0x0120}, -{0x0122,0x0122,0x0123,0x0122},{0x0123,0x0122,0x0123,0x0122},{0x0124,0x0124,0x0125,0x0124},{0x0125,0x0124,0x0125,0x0124}, -{0x2126,0x2126,0x03c9,0x2126},{0x0126,0x0126,0x0127,0x0126},{0x0127,0x0126,0x0127,0x0126},{0x0128,0x0128,0x0129,0x0128}, -{0x0129,0x0128,0x0129,0x0128},{0x012a,0x012a,0x012b,0x012a},{0x212a,0x212a,0x006b,0x212a},{0x212b,0x212b,0x00e5,0x212b}, -{0x012b,0x012a,0x012b,0x012a},{0x012c,0x012c,0x012d,0x012c},{0x012d,0x012c,0x012d,0x012c},{0x012e,0x012e,0x012f,0x012e}, -{0x012f,0x012e,0x012f,0x012e},{0x0130,0x0130,0x0069,0x0130},{0x0131,0x0049,0x0131,0x0049},{0x2132,0x2132,0x214e,0x2132}, -{0x0132,0x0132,0x0133,0x0132},{0x0133,0x0132,0x0133,0x0132},{0x0134,0x0134,0x0135,0x0134},{0x0135,0x0134,0x0135,0x0134}, -{0x0136,0x0136,0x0137,0x0136},{0x0137,0x0136,0x0137,0x0136},{0x0139,0x0139,0x013a,0x0139},{0x013a,0x0139,0x013a,0x0139}, -{0x013b,0x013b,0x013c,0x013b},{0x013c,0x013b,0x013c,0x013b},{0x013d,0x013d,0x013e,0x013d},{0x013e,0x013d,0x013e,0x013d}, -{0x013f,0x013f,0x0140,0x013f},{0x0140,0x013f,0x0140,0x013f},{0x0141,0x0141,0x0142,0x0141},{0x0142,0x0141,0x0142,0x0141}, -{0x0143,0x0143,0x0144,0x0143},{0x0144,0x0143,0x0144,0x0143},{0x0145,0x0145,0x0146,0x0145},{0x0146,0x0145,0x0146,0x0145}, -{0x0147,0x0147,0x0148,0x0147},{0x0148,0x0147,0x0148,0x0147},{0x014a,0x014a,0x014b,0x014a},{0x014b,0x014a,0x014b,0x014a}, -{0x014c,0x014c,0x014d,0x014c},{0x014d,0x014c,0x014d,0x014c},{0x214e,0x2132,0x214e,0x2132},{0x014e,0x014e,0x014f,0x014e}, -{0x014f,0x014e,0x014f,0x014e},{0x0150,0x0150,0x0151,0x0150},{0x0151,0x0150,0x0151,0x0150},{0x0152,0x0152,0x0153,0x0152}, -{0x0153,0x0152,0x0153,0x0152},{0x0154,0x0154,0x0155,0x0154},{0x0155,0x0154,0x0155,0x0154},{0x0156,0x0156,0x0157,0x0156}, -{0x0157,0x0156,0x0157,0x0156},{0x0158,0x0158,0x0159,0x0158},{0x0159,0x0158,0x0159,0x0158},{0x015a,0x015a,0x015b,0x015a}, -{0x015b,0x015a,0x015b,0x015a},{0x015c,0x015c,0x015d,0x015c},{0x015d,0x015c,0x015d,0x015c},{0x015e,0x015e,0x015f,0x015e}, -{0x015f,0x015e,0x015f,0x015e},{0x2160,0x2160,0x2170,0x2160},{0x0160,0x0160,0x0161,0x0160},{0x0161,0x0160,0x0161,0x0160}, -{0x2161,0x2161,0x2171,0x2161},{0x2162,0x2162,0x2172,0x2162},{0x0162,0x0162,0x0163,0x0162},{0x0163,0x0162,0x0163,0x0162}, -{0x2163,0x2163,0x2173,0x2163},{0x2164,0x2164,0x2174,0x2164},{0x0164,0x0164,0x0165,0x0164},{0x0165,0x0164,0x0165,0x0164}, -{0x2165,0x2165,0x2175,0x2165},{0x0166,0x0166,0x0167,0x0166},{0x2166,0x2166,0x2176,0x2166},{0x2167,0x2167,0x2177,0x2167}, -{0x0167,0x0166,0x0167,0x0166},{0x0168,0x0168,0x0169,0x0168},{0x2168,0x2168,0x2178,0x2168},{0x2169,0x2169,0x2179,0x2169}, -{0x0169,0x0168,0x0169,0x0168},{0x016a,0x016a,0x016b,0x016a},{0x216a,0x216a,0x217a,0x216a},{0x016b,0x016a,0x016b,0x016a}, -{0x216b,0x216b,0x217b,0x216b},{0x016c,0x016c,0x016d,0x016c},{0x216c,0x216c,0x217c,0x216c},{0x216d,0x216d,0x217d,0x216d}, -{0x016d,0x016c,0x016d,0x016c},{0x216e,0x216e,0x217e,0x216e},{0x016e,0x016e,0x016f,0x016e},{0x016f,0x016e,0x016f,0x016e}, -{0x216f,0x216f,0x217f,0x216f},{0x0170,0x0170,0x0171,0x0170},{0x2170,0x2160,0x2170,0x2160},{0x0171,0x0170,0x0171,0x0170}, -{0x2171,0x2161,0x2171,0x2161},{0x2172,0x2162,0x2172,0x2162},{0x0172,0x0172,0x0173,0x0172},{0x0173,0x0172,0x0173,0x0172}, -{0x2173,0x2163,0x2173,0x2163},{0x0174,0x0174,0x0175,0x0174},{0x2174,0x2164,0x2174,0x2164},{0x2175,0x2165,0x2175,0x2165}, -{0x0175,0x0174,0x0175,0x0174},{0x2176,0x2166,0x2176,0x2166},{0x0176,0x0176,0x0177,0x0176},{0x2177,0x2167,0x2177,0x2167}, -{0x0177,0x0176,0x0177,0x0176},{0x2178,0x2168,0x2178,0x2168},{0x0178,0x0178,0x00ff,0x0178},{0x0179,0x0179,0x017a,0x0179}, -{0x2179,0x2169,0x2179,0x2169},{0x217a,0x216a,0x217a,0x216a},{0x017a,0x0179,0x017a,0x0179},{0x217b,0x216b,0x217b,0x216b}, -{0x017b,0x017b,0x017c,0x017b},{0x217c,0x216c,0x217c,0x216c},{0x017c,0x017b,0x017c,0x017b},{0x017d,0x017d,0x017e,0x017d}, -{0x217d,0x216d,0x217d,0x216d},{0x017e,0x017d,0x017e,0x017d},{0x217e,0x216e,0x217e,0x216e},{0x017f,0x0053,0x017f,0x0053}, -{0x217f,0x216f,0x217f,0x216f},{0x0180,0x0243,0x0180,0x0243},{0x0181,0x0181,0x0253,0x0181},{0x0182,0x0182,0x0183,0x0182}, -{0x2183,0x2183,0x2184,0x2183},{0x0183,0x0182,0x0183,0x0182},{0x2184,0x2183,0x2184,0x2183},{0x0184,0x0184,0x0185,0x0184}, -{0x0185,0x0184,0x0185,0x0184},{0x0186,0x0186,0x0254,0x0186},{0x0187,0x0187,0x0188,0x0187},{0x0188,0x0187,0x0188,0x0187}, -{0x0189,0x0189,0x0256,0x0189},{0x018a,0x018a,0x0257,0x018a},{0x018b,0x018b,0x018c,0x018b},{0x018c,0x018b,0x018c,0x018b}, -{0x018e,0x018e,0x01dd,0x018e},{0x018f,0x018f,0x0259,0x018f},{0x0190,0x0190,0x025b,0x0190},{0x0191,0x0191,0x0192,0x0191}, -{0x0192,0x0191,0x0192,0x0191},{0x0193,0x0193,0x0260,0x0193},{0x0194,0x0194,0x0263,0x0194},{0x0195,0x01f6,0x0195,0x01f6}, -{0x0196,0x0196,0x0269,0x0196},{0x0197,0x0197,0x0268,0x0197},{0x0198,0x0198,0x0199,0x0198},{0x0199,0x0198,0x0199,0x0198}, -{0x019a,0x023d,0x019a,0x023d},{0x019c,0x019c,0x026f,0x019c},{0x019d,0x019d,0x0272,0x019d},{0x019e,0x0220,0x019e,0x0220}, -{0x019f,0x019f,0x0275,0x019f},{0x01a0,0x01a0,0x01a1,0x01a0},{0x01a1,0x01a0,0x01a1,0x01a0},{0x01a2,0x01a2,0x01a3,0x01a2}, -{0x01a3,0x01a2,0x01a3,0x01a2},{0x01a4,0x01a4,0x01a5,0x01a4},{0x01a5,0x01a4,0x01a5,0x01a4},{0x01a6,0x01a6,0x0280,0x01a6}, -{0x01a7,0x01a7,0x01a8,0x01a7},{0x01a8,0x01a7,0x01a8,0x01a7},{0x01a9,0x01a9,0x0283,0x01a9},{0x01ac,0x01ac,0x01ad,0x01ac}, -{0x01ad,0x01ac,0x01ad,0x01ac},{0x01ae,0x01ae,0x0288,0x01ae},{0x01af,0x01af,0x01b0,0x01af},{0x01b0,0x01af,0x01b0,0x01af}, -{0x01b1,0x01b1,0x028a,0x01b1},{0x01b2,0x01b2,0x028b,0x01b2},{0x01b3,0x01b3,0x01b4,0x01b3},{0x01b4,0x01b3,0x01b4,0x01b3}, -{0x01b5,0x01b5,0x01b6,0x01b5},{0x01b6,0x01b5,0x01b6,0x01b5},{0x01b7,0x01b7,0x0292,0x01b7},{0x01b8,0x01b8,0x01b9,0x01b8}, -{0x01b9,0x01b8,0x01b9,0x01b8},{0x01bc,0x01bc,0x01bd,0x01bc},{0x01bd,0x01bc,0x01bd,0x01bc},{0x01bf,0x01f7,0x01bf,0x01f7}, -{0x01c4,0x01c4,0x01c6,0x01c5},{0x01c5,0x01c4,0x01c6,0x01c5},{0x01c6,0x01c4,0x01c6,0x01c5},{0x01c7,0x01c7,0x01c9,0x01c8}, -{0x01c8,0x01c7,0x01c9,0x01c8},{0x01c9,0x01c7,0x01c9,0x01c8},{0x01ca,0x01ca,0x01cc,0x01cb},{0x01cb,0x01ca,0x01cc,0x01cb}, -{0x01cc,0x01ca,0x01cc,0x01cb},{0x01cd,0x01cd,0x01ce,0x01cd},{0x01ce,0x01cd,0x01ce,0x01cd},{0x01cf,0x01cf,0x01d0,0x01cf}, -{0x01d0,0x01cf,0x01d0,0x01cf},{0x01d1,0x01d1,0x01d2,0x01d1},{0x01d2,0x01d1,0x01d2,0x01d1},{0x01d3,0x01d3,0x01d4,0x01d3}, -{0x01d4,0x01d3,0x01d4,0x01d3},{0x01d5,0x01d5,0x01d6,0x01d5},{0x01d6,0x01d5,0x01d6,0x01d5},{0x01d7,0x01d7,0x01d8,0x01d7}, -{0x01d8,0x01d7,0x01d8,0x01d7},{0x01d9,0x01d9,0x01da,0x01d9},{0x01da,0x01d9,0x01da,0x01d9},{0x01db,0x01db,0x01dc,0x01db}, -{0x01dc,0x01db,0x01dc,0x01db},{0x01dd,0x018e,0x01dd,0x018e},{0x01de,0x01de,0x01df,0x01de},{0x01df,0x01de,0x01df,0x01de}, -{0x01e0,0x01e0,0x01e1,0x01e0},{0x01e1,0x01e0,0x01e1,0x01e0},{0x01e2,0x01e2,0x01e3,0x01e2},{0x01e3,0x01e2,0x01e3,0x01e2}, -{0x01e4,0x01e4,0x01e5,0x01e4},{0x01e5,0x01e4,0x01e5,0x01e4},{0x01e6,0x01e6,0x01e7,0x01e6},{0x01e7,0x01e6,0x01e7,0x01e6}, -{0x01e8,0x01e8,0x01e9,0x01e8},{0x01e9,0x01e8,0x01e9,0x01e8},{0x01ea,0x01ea,0x01eb,0x01ea},{0x01eb,0x01ea,0x01eb,0x01ea}, -{0x01ec,0x01ec,0x01ed,0x01ec},{0x01ed,0x01ec,0x01ed,0x01ec},{0x01ee,0x01ee,0x01ef,0x01ee},{0x01ef,0x01ee,0x01ef,0x01ee}, -{0x01f1,0x01f1,0x01f3,0x01f2},{0x01f2,0x01f1,0x01f3,0x01f2},{0x01f3,0x01f1,0x01f3,0x01f2},{0x01f4,0x01f4,0x01f5,0x01f4}, -{0x01f5,0x01f4,0x01f5,0x01f4},{0x01f6,0x01f6,0x0195,0x01f6},{0x01f7,0x01f7,0x01bf,0x01f7},{0x01f8,0x01f8,0x01f9,0x01f8}, -{0x01f9,0x01f8,0x01f9,0x01f8},{0x01fa,0x01fa,0x01fb,0x01fa},{0x01fb,0x01fa,0x01fb,0x01fa},{0x01fc,0x01fc,0x01fd,0x01fc}, -{0x01fd,0x01fc,0x01fd,0x01fc},{0x01fe,0x01fe,0x01ff,0x01fe},{0x01ff,0x01fe,0x01ff,0x01fe},{0x0200,0x0200,0x0201,0x0200}, -{0x0201,0x0200,0x0201,0x0200},{0x0202,0x0202,0x0203,0x0202},{0x0203,0x0202,0x0203,0x0202},{0x0204,0x0204,0x0205,0x0204}, -{0x0205,0x0204,0x0205,0x0204},{0x0206,0x0206,0x0207,0x0206},{0x0207,0x0206,0x0207,0x0206},{0x0208,0x0208,0x0209,0x0208}, -{0x0209,0x0208,0x0209,0x0208},{0x020a,0x020a,0x020b,0x020a},{0x020b,0x020a,0x020b,0x020a},{0x020c,0x020c,0x020d,0x020c}, -{0x020d,0x020c,0x020d,0x020c},{0x020e,0x020e,0x020f,0x020e},{0x020f,0x020e,0x020f,0x020e},{0x0210,0x0210,0x0211,0x0210}, -{0x0211,0x0210,0x0211,0x0210},{0x0212,0x0212,0x0213,0x0212},{0x0213,0x0212,0x0213,0x0212},{0x0214,0x0214,0x0215,0x0214}, -{0x0215,0x0214,0x0215,0x0214},{0x0216,0x0216,0x0217,0x0216},{0x0217,0x0216,0x0217,0x0216},{0x0218,0x0218,0x0219,0x0218}, -{0x0219,0x0218,0x0219,0x0218},{0x021a,0x021a,0x021b,0x021a},{0x021b,0x021a,0x021b,0x021a},{0x021c,0x021c,0x021d,0x021c}, -{0x021d,0x021c,0x021d,0x021c},{0x021e,0x021e,0x021f,0x021e},{0x021f,0x021e,0x021f,0x021e},{0x0220,0x0220,0x019e,0x0220}, -{0x0222,0x0222,0x0223,0x0222},{0x0223,0x0222,0x0223,0x0222},{0x0224,0x0224,0x0225,0x0224},{0x0225,0x0224,0x0225,0x0224}, -{0x0226,0x0226,0x0227,0x0226},{0x0227,0x0226,0x0227,0x0226},{0x0228,0x0228,0x0229,0x0228},{0x0229,0x0228,0x0229,0x0228}, -{0x022a,0x022a,0x022b,0x022a},{0x022b,0x022a,0x022b,0x022a},{0x022c,0x022c,0x022d,0x022c},{0x022d,0x022c,0x022d,0x022c}, -{0x022e,0x022e,0x022f,0x022e},{0x022f,0x022e,0x022f,0x022e},{0x0230,0x0230,0x0231,0x0230},{0x0231,0x0230,0x0231,0x0230}, -{0x0232,0x0232,0x0233,0x0232},{0x0233,0x0232,0x0233,0x0232},{0x023a,0x023a,0x2c65,0x023a},{0x023b,0x023b,0x023c,0x023b}, -{0x023c,0x023b,0x023c,0x023b},{0x023d,0x023d,0x019a,0x023d},{0x023e,0x023e,0x2c66,0x023e},{0x023f,0x2c7e,0x023f,0x2c7e}, -{0x0240,0x2c7f,0x0240,0x2c7f},{0x0241,0x0241,0x0242,0x0241},{0x0242,0x0241,0x0242,0x0241},{0x0243,0x0243,0x0180,0x0243}, -{0x0244,0x0244,0x0289,0x0244},{0x0245,0x0245,0x028c,0x0245},{0x0246,0x0246,0x0247,0x0246},{0x0247,0x0246,0x0247,0x0246}, -{0x0248,0x0248,0x0249,0x0248},{0x0249,0x0248,0x0249,0x0248},{0x024a,0x024a,0x024b,0x024a},{0x024b,0x024a,0x024b,0x024a}, -{0x024c,0x024c,0x024d,0x024c},{0x024d,0x024c,0x024d,0x024c},{0x024e,0x024e,0x024f,0x024e},{0x024f,0x024e,0x024f,0x024e}, -{0x0250,0x2c6f,0x0250,0x2c6f},{0x0251,0x2c6d,0x0251,0x2c6d},{0x0252,0x2c70,0x0252,0x2c70},{0x0253,0x0181,0x0253,0x0181}, -{0x0254,0x0186,0x0254,0x0186},{0x0256,0x0189,0x0256,0x0189},{0x0257,0x018a,0x0257,0x018a},{0x0259,0x018f,0x0259,0x018f}, -{0x025b,0x0190,0x025b,0x0190},{0x025c,0xa7ab,0x025c,0xa7ab},{0x0260,0x0193,0x0260,0x0193},{0x0261,0xa7ac,0x0261,0xa7ac}, -{0x0263,0x0194,0x0263,0x0194},{0x0265,0xa78d,0x0265,0xa78d},{0x0266,0xa7aa,0x0266,0xa7aa},{0x0268,0x0197,0x0268,0x0197}, -{0x0269,0x0196,0x0269,0x0196},{0x026b,0x2c62,0x026b,0x2c62},{0x026c,0xa7ad,0x026c,0xa7ad},{0x026f,0x019c,0x026f,0x019c}, -{0x0271,0x2c6e,0x0271,0x2c6e},{0x0272,0x019d,0x0272,0x019d},{0x0275,0x019f,0x0275,0x019f},{0x027d,0x2c64,0x027d,0x2c64}, -{0x0280,0x01a6,0x0280,0x01a6},{0x0283,0x01a9,0x0283,0x01a9},{0x0287,0xa7b1,0x0287,0xa7b1},{0x0288,0x01ae,0x0288,0x01ae}, +{0x00c8,0x00c8,0x00e8,0x00c8},{0x118c8,0x118a8,0x118c8,0x118a8},{0x00c9,0x00c9,0x00e9,0x00c9},{0x118c9,0x118a9,0x118c9,0x118a9}, +{0x00ca,0x00ca,0x00ea,0x00ca},{0x118ca,0x118aa,0x118ca,0x118aa},{0x118cb,0x118ab,0x118cb,0x118ab},{0x00cb,0x00cb,0x00eb,0x00cb}, +{0x118cc,0x118ac,0x118cc,0x118ac},{0x00cc,0x00cc,0x00ec,0x00cc},{0x10cd,0x10cd,0x2d2d,0x10cd},{0x00cd,0x00cd,0x00ed,0x00cd}, +{0x118cd,0x118ad,0x118cd,0x118ad},{0x118ce,0x118ae,0x118ce,0x118ae},{0x00ce,0x00ce,0x00ee,0x00ce},{0x118cf,0x118af,0x118cf,0x118af}, +{0x00cf,0x00cf,0x00ef,0x00cf},{0x118d0,0x118b0,0x118d0,0x118b0},{0x00d0,0x00d0,0x00f0,0x00d0},{0x10d0,0x1c90,0x10d0,0x10d0}, +{0x00d1,0x00d1,0x00f1,0x00d1},{0x118d1,0x118b1,0x118d1,0x118b1},{0x10d1,0x1c91,0x10d1,0x10d1},{0x00d2,0x00d2,0x00f2,0x00d2}, +{0x10d2,0x1c92,0x10d2,0x10d2},{0x118d2,0x118b2,0x118d2,0x118b2},{0x118d3,0x118b3,0x118d3,0x118b3},{0x10d3,0x1c93,0x10d3,0x10d3}, +{0x00d3,0x00d3,0x00f3,0x00d3},{0x10d4,0x1c94,0x10d4,0x10d4},{0x118d4,0x118b4,0x118d4,0x118b4},{0x00d4,0x00d4,0x00f4,0x00d4}, +{0x00d5,0x00d5,0x00f5,0x00d5},{0x118d5,0x118b5,0x118d5,0x118b5},{0x10d5,0x1c95,0x10d5,0x10d5},{0x118d6,0x118b6,0x118d6,0x118b6}, +{0x10d6,0x1c96,0x10d6,0x10d6},{0x00d6,0x00d6,0x00f6,0x00d6},{0x10d7,0x1c97,0x10d7,0x10d7},{0x118d7,0x118b7,0x118d7,0x118b7}, +{0x00d8,0x00d8,0x00f8,0x00d8},{0x118d8,0x118b8,0x118d8,0x118b8},{0x10d8,0x1c98,0x10d8,0x10d8},{0x118d9,0x118b9,0x118d9,0x118b9}, +{0x00d9,0x00d9,0x00f9,0x00d9},{0x10d9,0x1c99,0x10d9,0x10d9},{0x10da,0x1c9a,0x10da,0x10da},{0x118da,0x118ba,0x118da,0x118ba}, +{0x00da,0x00da,0x00fa,0x00da},{0x10db,0x1c9b,0x10db,0x10db},{0x118db,0x118bb,0x118db,0x118bb},{0x00db,0x00db,0x00fb,0x00db}, +{0x10dc,0x1c9c,0x10dc,0x10dc},{0x118dc,0x118bc,0x118dc,0x118bc},{0x00dc,0x00dc,0x00fc,0x00dc},{0x118dd,0x118bd,0x118dd,0x118bd}, +{0x00dd,0x00dd,0x00fd,0x00dd},{0x10dd,0x1c9d,0x10dd,0x10dd},{0x00de,0x00de,0x00fe,0x00de},{0x10de,0x1c9e,0x10de,0x10de}, +{0x118de,0x118be,0x118de,0x118be},{0x118df,0x118bf,0x118df,0x118bf},{0x10df,0x1c9f,0x10df,0x10df},{0x10e0,0x1ca0,0x10e0,0x10e0}, +{0x00e0,0x00c0,0x00e0,0x00c0},{0x10e1,0x1ca1,0x10e1,0x10e1},{0x00e1,0x00c1,0x00e1,0x00c1},{0x10e2,0x1ca2,0x10e2,0x10e2}, +{0x00e2,0x00c2,0x00e2,0x00c2},{0x00e3,0x00c3,0x00e3,0x00c3},{0x10e3,0x1ca3,0x10e3,0x10e3},{0x10e4,0x1ca4,0x10e4,0x10e4}, +{0x00e4,0x00c4,0x00e4,0x00c4},{0x10e5,0x1ca5,0x10e5,0x10e5},{0x00e5,0x00c5,0x00e5,0x00c5},{0x10e6,0x1ca6,0x10e6,0x10e6}, +{0x00e6,0x00c6,0x00e6,0x00c6},{0x00e7,0x00c7,0x00e7,0x00c7},{0x10e7,0x1ca7,0x10e7,0x10e7},{0x00e8,0x00c8,0x00e8,0x00c8}, +{0x10e8,0x1ca8,0x10e8,0x10e8},{0x00e9,0x00c9,0x00e9,0x00c9},{0x10e9,0x1ca9,0x10e9,0x10e9},{0x00ea,0x00ca,0x00ea,0x00ca}, +{0x10ea,0x1caa,0x10ea,0x10ea},{0x10eb,0x1cab,0x10eb,0x10eb},{0x00eb,0x00cb,0x00eb,0x00cb},{0x10ec,0x1cac,0x10ec,0x10ec}, +{0x00ec,0x00cc,0x00ec,0x00cc},{0x10ed,0x1cad,0x10ed,0x10ed},{0x00ed,0x00cd,0x00ed,0x00cd},{0x00ee,0x00ce,0x00ee,0x00ce}, +{0x10ee,0x1cae,0x10ee,0x10ee},{0x00ef,0x00cf,0x00ef,0x00cf},{0x10ef,0x1caf,0x10ef,0x10ef},{0x00f0,0x00d0,0x00f0,0x00d0}, +{0x10f0,0x1cb0,0x10f0,0x10f0},{0x10f1,0x1cb1,0x10f1,0x10f1},{0x00f1,0x00d1,0x00f1,0x00d1},{0x10f2,0x1cb2,0x10f2,0x10f2}, +{0x00f2,0x00d2,0x00f2,0x00d2},{0x10f3,0x1cb3,0x10f3,0x10f3},{0x00f3,0x00d3,0x00f3,0x00d3},{0x10f4,0x1cb4,0x10f4,0x10f4}, +{0x00f4,0x00d4,0x00f4,0x00d4},{0x00f5,0x00d5,0x00f5,0x00d5},{0x10f5,0x1cb5,0x10f5,0x10f5},{0x00f6,0x00d6,0x00f6,0x00d6}, +{0x10f6,0x1cb6,0x10f6,0x10f6},{0x10f7,0x1cb7,0x10f7,0x10f7},{0x10f8,0x1cb8,0x10f8,0x10f8},{0x00f8,0x00d8,0x00f8,0x00d8}, +{0x10f9,0x1cb9,0x10f9,0x10f9},{0x00f9,0x00d9,0x00f9,0x00d9},{0x00fa,0x00da,0x00fa,0x00da},{0x10fa,0x1cba,0x10fa,0x10fa}, +{0x00fb,0x00db,0x00fb,0x00db},{0x00fc,0x00dc,0x00fc,0x00dc},{0x00fd,0x00dd,0x00fd,0x00dd},{0x10fd,0x1cbd,0x10fd,0x10fd}, +{0x00fe,0x00de,0x00fe,0x00de},{0x10fe,0x1cbe,0x10fe,0x10fe},{0x10ff,0x1cbf,0x10ff,0x10ff},{0x00ff,0x0178,0x00ff,0x0178}, +{0x1e900,0x1e900,0x1e922,0x1e900},{0x0100,0x0100,0x0101,0x0100},{0x1e901,0x1e901,0x1e923,0x1e901},{0x0101,0x0100,0x0101,0x0100}, +{0x0102,0x0102,0x0103,0x0102},{0x1e902,0x1e902,0x1e924,0x1e902},{0x0103,0x0102,0x0103,0x0102},{0x1e903,0x1e903,0x1e925,0x1e903}, +{0x1e904,0x1e904,0x1e926,0x1e904},{0x0104,0x0104,0x0105,0x0104},{0x1e905,0x1e905,0x1e927,0x1e905},{0x0105,0x0104,0x0105,0x0104}, +{0x1e906,0x1e906,0x1e928,0x1e906},{0x0106,0x0106,0x0107,0x0106},{0x0107,0x0106,0x0107,0x0106},{0x1e907,0x1e907,0x1e929,0x1e907}, +{0x1e908,0x1e908,0x1e92a,0x1e908},{0x0108,0x0108,0x0109,0x0108},{0x0109,0x0108,0x0109,0x0108},{0x1e909,0x1e909,0x1e92b,0x1e909}, +{0x1e90a,0x1e90a,0x1e92c,0x1e90a},{0x010a,0x010a,0x010b,0x010a},{0x1e90b,0x1e90b,0x1e92d,0x1e90b},{0x010b,0x010a,0x010b,0x010a}, +{0x010c,0x010c,0x010d,0x010c},{0x1e90c,0x1e90c,0x1e92e,0x1e90c},{0x1e90d,0x1e90d,0x1e92f,0x1e90d},{0x010d,0x010c,0x010d,0x010c}, +{0x1e90e,0x1e90e,0x1e930,0x1e90e},{0x010e,0x010e,0x010f,0x010e},{0x010f,0x010e,0x010f,0x010e},{0x1e90f,0x1e90f,0x1e931,0x1e90f}, +{0x0110,0x0110,0x0111,0x0110},{0x1e910,0x1e910,0x1e932,0x1e910},{0x0111,0x0110,0x0111,0x0110},{0x1e911,0x1e911,0x1e933,0x1e911}, +{0x0112,0x0112,0x0113,0x0112},{0x1e912,0x1e912,0x1e934,0x1e912},{0x1e913,0x1e913,0x1e935,0x1e913},{0x0113,0x0112,0x0113,0x0112}, +{0x1e914,0x1e914,0x1e936,0x1e914},{0x0114,0x0114,0x0115,0x0114},{0x0115,0x0114,0x0115,0x0114},{0x1e915,0x1e915,0x1e937,0x1e915}, +{0x1e916,0x1e916,0x1e938,0x1e916},{0x0116,0x0116,0x0117,0x0116},{0x1e917,0x1e917,0x1e939,0x1e917},{0x0117,0x0116,0x0117,0x0116}, +{0x1e918,0x1e918,0x1e93a,0x1e918},{0x0118,0x0118,0x0119,0x0118},{0x0119,0x0118,0x0119,0x0118},{0x1e919,0x1e919,0x1e93b,0x1e919}, +{0x1e91a,0x1e91a,0x1e93c,0x1e91a},{0x011a,0x011a,0x011b,0x011a},{0x1e91b,0x1e91b,0x1e93d,0x1e91b},{0x011b,0x011a,0x011b,0x011a}, +{0x1e91c,0x1e91c,0x1e93e,0x1e91c},{0x011c,0x011c,0x011d,0x011c},{0x011d,0x011c,0x011d,0x011c},{0x1e91d,0x1e91d,0x1e93f,0x1e91d}, +{0x1e91e,0x1e91e,0x1e940,0x1e91e},{0x011e,0x011e,0x011f,0x011e},{0x011f,0x011e,0x011f,0x011e},{0x1e91f,0x1e91f,0x1e941,0x1e91f}, +{0x1e920,0x1e920,0x1e942,0x1e920},{0x0120,0x0120,0x0121,0x0120},{0x0121,0x0120,0x0121,0x0120},{0x1e921,0x1e921,0x1e943,0x1e921}, +{0x1e922,0x1e900,0x1e922,0x1e900},{0x0122,0x0122,0x0123,0x0122},{0x1e923,0x1e901,0x1e923,0x1e901},{0x0123,0x0122,0x0123,0x0122}, +{0x0124,0x0124,0x0125,0x0124},{0x1e924,0x1e902,0x1e924,0x1e902},{0x0125,0x0124,0x0125,0x0124},{0x1e925,0x1e903,0x1e925,0x1e903}, +{0x0126,0x0126,0x0127,0x0126},{0x2126,0x2126,0x03c9,0x2126},{0x1e926,0x1e904,0x1e926,0x1e904},{0x1e927,0x1e905,0x1e927,0x1e905}, +{0x0127,0x0126,0x0127,0x0126},{0x0128,0x0128,0x0129,0x0128},{0x1e928,0x1e906,0x1e928,0x1e906},{0x0129,0x0128,0x0129,0x0128}, +{0x1e929,0x1e907,0x1e929,0x1e907},{0x212a,0x212a,0x006b,0x212a},{0x1e92a,0x1e908,0x1e92a,0x1e908},{0x012a,0x012a,0x012b,0x012a}, +{0x1e92b,0x1e909,0x1e92b,0x1e909},{0x012b,0x012a,0x012b,0x012a},{0x212b,0x212b,0x00e5,0x212b},{0x012c,0x012c,0x012d,0x012c}, +{0x1e92c,0x1e90a,0x1e92c,0x1e90a},{0x1e92d,0x1e90b,0x1e92d,0x1e90b},{0x012d,0x012c,0x012d,0x012c},{0x1e92e,0x1e90c,0x1e92e,0x1e90c}, +{0x012e,0x012e,0x012f,0x012e},{0x1e92f,0x1e90d,0x1e92f,0x1e90d},{0x012f,0x012e,0x012f,0x012e},{0x1e930,0x1e90e,0x1e930,0x1e90e}, +{0x0130,0x0130,0x0069,0x0130},{0x0131,0x0049,0x0131,0x0049},{0x1e931,0x1e90f,0x1e931,0x1e90f},{0x1e932,0x1e910,0x1e932,0x1e910}, +{0x0132,0x0132,0x0133,0x0132},{0x2132,0x2132,0x214e,0x2132},{0x1e933,0x1e911,0x1e933,0x1e911},{0x0133,0x0132,0x0133,0x0132}, +{0x0134,0x0134,0x0135,0x0134},{0x1e934,0x1e912,0x1e934,0x1e912},{0x1e935,0x1e913,0x1e935,0x1e913},{0x0135,0x0134,0x0135,0x0134}, +{0x1e936,0x1e914,0x1e936,0x1e914},{0x0136,0x0136,0x0137,0x0136},{0x1e937,0x1e915,0x1e937,0x1e915},{0x0137,0x0136,0x0137,0x0136}, +{0x1e938,0x1e916,0x1e938,0x1e916},{0x1e939,0x1e917,0x1e939,0x1e917},{0x0139,0x0139,0x013a,0x0139},{0x1e93a,0x1e918,0x1e93a,0x1e918}, +{0x013a,0x0139,0x013a,0x0139},{0x1e93b,0x1e919,0x1e93b,0x1e919},{0x013b,0x013b,0x013c,0x013b},{0x1e93c,0x1e91a,0x1e93c,0x1e91a}, +{0x013c,0x013b,0x013c,0x013b},{0x013d,0x013d,0x013e,0x013d},{0x1e93d,0x1e91b,0x1e93d,0x1e91b},{0x1e93e,0x1e91c,0x1e93e,0x1e91c}, +{0x013e,0x013d,0x013e,0x013d},{0x013f,0x013f,0x0140,0x013f},{0x1e93f,0x1e91d,0x1e93f,0x1e91d},{0x1e940,0x1e91e,0x1e940,0x1e91e}, +{0x0140,0x013f,0x0140,0x013f},{0x1e941,0x1e91f,0x1e941,0x1e91f},{0x0141,0x0141,0x0142,0x0141},{0x1e942,0x1e920,0x1e942,0x1e920}, +{0x0142,0x0141,0x0142,0x0141},{0x0143,0x0143,0x0144,0x0143},{0x1e943,0x1e921,0x1e943,0x1e921},{0x0144,0x0143,0x0144,0x0143}, +{0x0145,0x0145,0x0146,0x0145},{0x0146,0x0145,0x0146,0x0145},{0x0147,0x0147,0x0148,0x0147},{0x0148,0x0147,0x0148,0x0147}, +{0x014a,0x014a,0x014b,0x014a},{0x014b,0x014a,0x014b,0x014a},{0x014c,0x014c,0x014d,0x014c},{0x014d,0x014c,0x014d,0x014c}, +{0x214e,0x2132,0x214e,0x2132},{0x014e,0x014e,0x014f,0x014e},{0x014f,0x014e,0x014f,0x014e},{0x0150,0x0150,0x0151,0x0150}, +{0x0151,0x0150,0x0151,0x0150},{0x0152,0x0152,0x0153,0x0152},{0x0153,0x0152,0x0153,0x0152},{0x0154,0x0154,0x0155,0x0154}, +{0x0155,0x0154,0x0155,0x0154},{0x0156,0x0156,0x0157,0x0156},{0x0157,0x0156,0x0157,0x0156},{0x0158,0x0158,0x0159,0x0158}, +{0x0159,0x0158,0x0159,0x0158},{0x015a,0x015a,0x015b,0x015a},{0x015b,0x015a,0x015b,0x015a},{0x015c,0x015c,0x015d,0x015c}, +{0x015d,0x015c,0x015d,0x015c},{0x015e,0x015e,0x015f,0x015e},{0x015f,0x015e,0x015f,0x015e},{0x0160,0x0160,0x0161,0x0160}, +{0x2160,0x2160,0x2170,0x2160},{0x2161,0x2161,0x2171,0x2161},{0x0161,0x0160,0x0161,0x0160},{0x0162,0x0162,0x0163,0x0162}, +{0x2162,0x2162,0x2172,0x2162},{0x2163,0x2163,0x2173,0x2163},{0x0163,0x0162,0x0163,0x0162},{0x2164,0x2164,0x2174,0x2164}, +{0x0164,0x0164,0x0165,0x0164},{0x0165,0x0164,0x0165,0x0164},{0x2165,0x2165,0x2175,0x2165},{0x0166,0x0166,0x0167,0x0166}, +{0x2166,0x2166,0x2176,0x2166},{0x0167,0x0166,0x0167,0x0166},{0x2167,0x2167,0x2177,0x2167},{0x2168,0x2168,0x2178,0x2168}, +{0x0168,0x0168,0x0169,0x0168},{0x2169,0x2169,0x2179,0x2169},{0x0169,0x0168,0x0169,0x0168},{0x016a,0x016a,0x016b,0x016a}, +{0x216a,0x216a,0x217a,0x216a},{0x016b,0x016a,0x016b,0x016a},{0x216b,0x216b,0x217b,0x216b},{0x016c,0x016c,0x016d,0x016c}, +{0x216c,0x216c,0x217c,0x216c},{0x216d,0x216d,0x217d,0x216d},{0x016d,0x016c,0x016d,0x016c},{0x216e,0x216e,0x217e,0x216e}, +{0x016e,0x016e,0x016f,0x016e},{0x016f,0x016e,0x016f,0x016e},{0x216f,0x216f,0x217f,0x216f},{0x2170,0x2160,0x2170,0x2160}, +{0x0170,0x0170,0x0171,0x0170},{0x2171,0x2161,0x2171,0x2161},{0x0171,0x0170,0x0171,0x0170},{0x2172,0x2162,0x2172,0x2162}, +{0x0172,0x0172,0x0173,0x0172},{0x2173,0x2163,0x2173,0x2163},{0x0173,0x0172,0x0173,0x0172},{0x2174,0x2164,0x2174,0x2164}, +{0x0174,0x0174,0x0175,0x0174},{0x0175,0x0174,0x0175,0x0174},{0x2175,0x2165,0x2175,0x2165},{0x2176,0x2166,0x2176,0x2166}, +{0x0176,0x0176,0x0177,0x0176},{0x0177,0x0176,0x0177,0x0176},{0x2177,0x2167,0x2177,0x2167},{0x0178,0x0178,0x00ff,0x0178}, +{0x2178,0x2168,0x2178,0x2168},{0x2179,0x2169,0x2179,0x2169},{0x0179,0x0179,0x017a,0x0179},{0x217a,0x216a,0x217a,0x216a}, +{0x017a,0x0179,0x017a,0x0179},{0x217b,0x216b,0x217b,0x216b},{0x017b,0x017b,0x017c,0x017b},{0x017c,0x017b,0x017c,0x017b}, +{0x217c,0x216c,0x217c,0x216c},{0x017d,0x017d,0x017e,0x017d},{0x217d,0x216d,0x217d,0x216d},{0x217e,0x216e,0x217e,0x216e}, +{0x017e,0x017d,0x017e,0x017d},{0x217f,0x216f,0x217f,0x216f},{0x017f,0x0053,0x017f,0x0053},{0x0180,0x0243,0x0180,0x0243}, +{0x0181,0x0181,0x0253,0x0181},{0x0182,0x0182,0x0183,0x0182},{0x0183,0x0182,0x0183,0x0182},{0x2183,0x2183,0x2184,0x2183}, +{0x0184,0x0184,0x0185,0x0184},{0x2184,0x2183,0x2184,0x2183},{0x0185,0x0184,0x0185,0x0184},{0x0186,0x0186,0x0254,0x0186}, +{0x0187,0x0187,0x0188,0x0187},{0x0188,0x0187,0x0188,0x0187},{0x0189,0x0189,0x0256,0x0189},{0x018a,0x018a,0x0257,0x018a}, +{0x018b,0x018b,0x018c,0x018b},{0x018c,0x018b,0x018c,0x018b},{0x018e,0x018e,0x01dd,0x018e},{0x018f,0x018f,0x0259,0x018f}, +{0x0190,0x0190,0x025b,0x0190},{0x0191,0x0191,0x0192,0x0191},{0x0192,0x0191,0x0192,0x0191},{0x0193,0x0193,0x0260,0x0193}, +{0x0194,0x0194,0x0263,0x0194},{0x0195,0x01f6,0x0195,0x01f6},{0x0196,0x0196,0x0269,0x0196},{0x0197,0x0197,0x0268,0x0197}, +{0x0198,0x0198,0x0199,0x0198},{0x0199,0x0198,0x0199,0x0198},{0x019a,0x023d,0x019a,0x023d},{0x019c,0x019c,0x026f,0x019c}, +{0x019d,0x019d,0x0272,0x019d},{0x019e,0x0220,0x019e,0x0220},{0x019f,0x019f,0x0275,0x019f},{0x01a0,0x01a0,0x01a1,0x01a0}, +{0x01a1,0x01a0,0x01a1,0x01a0},{0x01a2,0x01a2,0x01a3,0x01a2},{0x01a3,0x01a2,0x01a3,0x01a2},{0x01a4,0x01a4,0x01a5,0x01a4}, +{0x01a5,0x01a4,0x01a5,0x01a4},{0x01a6,0x01a6,0x0280,0x01a6},{0x01a7,0x01a7,0x01a8,0x01a7},{0x01a8,0x01a7,0x01a8,0x01a7}, +{0x01a9,0x01a9,0x0283,0x01a9},{0x01ac,0x01ac,0x01ad,0x01ac},{0x01ad,0x01ac,0x01ad,0x01ac},{0x01ae,0x01ae,0x0288,0x01ae}, +{0x01af,0x01af,0x01b0,0x01af},{0x01b0,0x01af,0x01b0,0x01af},{0x01b1,0x01b1,0x028a,0x01b1},{0x01b2,0x01b2,0x028b,0x01b2}, +{0x01b3,0x01b3,0x01b4,0x01b3},{0x01b4,0x01b3,0x01b4,0x01b3},{0x01b5,0x01b5,0x01b6,0x01b5},{0x01b6,0x01b5,0x01b6,0x01b5}, +{0x01b7,0x01b7,0x0292,0x01b7},{0x01b8,0x01b8,0x01b9,0x01b8},{0x01b9,0x01b8,0x01b9,0x01b8},{0x01bc,0x01bc,0x01bd,0x01bc}, +{0x01bd,0x01bc,0x01bd,0x01bc},{0x01bf,0x01f7,0x01bf,0x01f7},{0x01c4,0x01c4,0x01c6,0x01c5},{0x01c5,0x01c4,0x01c6,0x01c5}, +{0x01c6,0x01c4,0x01c6,0x01c5},{0x01c7,0x01c7,0x01c9,0x01c8},{0x01c8,0x01c7,0x01c9,0x01c8},{0x01c9,0x01c7,0x01c9,0x01c8}, +{0x01ca,0x01ca,0x01cc,0x01cb},{0x01cb,0x01ca,0x01cc,0x01cb},{0x01cc,0x01ca,0x01cc,0x01cb},{0x01cd,0x01cd,0x01ce,0x01cd}, +{0x01ce,0x01cd,0x01ce,0x01cd},{0x01cf,0x01cf,0x01d0,0x01cf},{0x01d0,0x01cf,0x01d0,0x01cf},{0x01d1,0x01d1,0x01d2,0x01d1}, +{0x01d2,0x01d1,0x01d2,0x01d1},{0x01d3,0x01d3,0x01d4,0x01d3},{0x01d4,0x01d3,0x01d4,0x01d3},{0x01d5,0x01d5,0x01d6,0x01d5}, +{0x01d6,0x01d5,0x01d6,0x01d5},{0x01d7,0x01d7,0x01d8,0x01d7},{0x01d8,0x01d7,0x01d8,0x01d7},{0x01d9,0x01d9,0x01da,0x01d9}, +{0x01da,0x01d9,0x01da,0x01d9},{0x01db,0x01db,0x01dc,0x01db},{0x01dc,0x01db,0x01dc,0x01db},{0x01dd,0x018e,0x01dd,0x018e}, +{0x01de,0x01de,0x01df,0x01de},{0x01df,0x01de,0x01df,0x01de},{0x01e0,0x01e0,0x01e1,0x01e0},{0x01e1,0x01e0,0x01e1,0x01e0}, +{0x01e2,0x01e2,0x01e3,0x01e2},{0x01e3,0x01e2,0x01e3,0x01e2},{0x01e4,0x01e4,0x01e5,0x01e4},{0x01e5,0x01e4,0x01e5,0x01e4}, +{0x01e6,0x01e6,0x01e7,0x01e6},{0x01e7,0x01e6,0x01e7,0x01e6},{0x01e8,0x01e8,0x01e9,0x01e8},{0x01e9,0x01e8,0x01e9,0x01e8}, +{0x01ea,0x01ea,0x01eb,0x01ea},{0x01eb,0x01ea,0x01eb,0x01ea},{0x01ec,0x01ec,0x01ed,0x01ec},{0x01ed,0x01ec,0x01ed,0x01ec}, +{0x01ee,0x01ee,0x01ef,0x01ee},{0x01ef,0x01ee,0x01ef,0x01ee},{0x01f1,0x01f1,0x01f3,0x01f2},{0x01f2,0x01f1,0x01f3,0x01f2}, +{0x01f3,0x01f1,0x01f3,0x01f2},{0x01f4,0x01f4,0x01f5,0x01f4},{0x01f5,0x01f4,0x01f5,0x01f4},{0x01f6,0x01f6,0x0195,0x01f6}, +{0x01f7,0x01f7,0x01bf,0x01f7},{0x01f8,0x01f8,0x01f9,0x01f8},{0x01f9,0x01f8,0x01f9,0x01f8},{0x01fa,0x01fa,0x01fb,0x01fa}, +{0x01fb,0x01fa,0x01fb,0x01fa},{0x01fc,0x01fc,0x01fd,0x01fc},{0x01fd,0x01fc,0x01fd,0x01fc},{0x01fe,0x01fe,0x01ff,0x01fe}, +{0x01ff,0x01fe,0x01ff,0x01fe},{0x0200,0x0200,0x0201,0x0200},{0x0201,0x0200,0x0201,0x0200},{0x0202,0x0202,0x0203,0x0202}, +{0x0203,0x0202,0x0203,0x0202},{0x0204,0x0204,0x0205,0x0204},{0x0205,0x0204,0x0205,0x0204},{0x0206,0x0206,0x0207,0x0206}, +{0x0207,0x0206,0x0207,0x0206},{0x0208,0x0208,0x0209,0x0208},{0x0209,0x0208,0x0209,0x0208},{0x020a,0x020a,0x020b,0x020a}, +{0x020b,0x020a,0x020b,0x020a},{0x020c,0x020c,0x020d,0x020c},{0x020d,0x020c,0x020d,0x020c},{0x020e,0x020e,0x020f,0x020e}, +{0x020f,0x020e,0x020f,0x020e},{0x0210,0x0210,0x0211,0x0210},{0x0211,0x0210,0x0211,0x0210},{0x0212,0x0212,0x0213,0x0212}, +{0x0213,0x0212,0x0213,0x0212},{0x0214,0x0214,0x0215,0x0214},{0x0215,0x0214,0x0215,0x0214},{0x0216,0x0216,0x0217,0x0216}, +{0x0217,0x0216,0x0217,0x0216},{0x0218,0x0218,0x0219,0x0218},{0x0219,0x0218,0x0219,0x0218},{0x021a,0x021a,0x021b,0x021a}, +{0x021b,0x021a,0x021b,0x021a},{0x021c,0x021c,0x021d,0x021c},{0x021d,0x021c,0x021d,0x021c},{0x021e,0x021e,0x021f,0x021e}, +{0x021f,0x021e,0x021f,0x021e},{0x0220,0x0220,0x019e,0x0220},{0x0222,0x0222,0x0223,0x0222},{0x0223,0x0222,0x0223,0x0222}, +{0x0224,0x0224,0x0225,0x0224},{0x0225,0x0224,0x0225,0x0224},{0x0226,0x0226,0x0227,0x0226},{0x0227,0x0226,0x0227,0x0226}, +{0x0228,0x0228,0x0229,0x0228},{0x0229,0x0228,0x0229,0x0228},{0x022a,0x022a,0x022b,0x022a},{0x022b,0x022a,0x022b,0x022a}, +{0x022c,0x022c,0x022d,0x022c},{0x022d,0x022c,0x022d,0x022c},{0x022e,0x022e,0x022f,0x022e},{0x022f,0x022e,0x022f,0x022e}, +{0x0230,0x0230,0x0231,0x0230},{0x0231,0x0230,0x0231,0x0230},{0x0232,0x0232,0x0233,0x0232},{0x0233,0x0232,0x0233,0x0232}, +{0x023a,0x023a,0x2c65,0x023a},{0x023b,0x023b,0x023c,0x023b},{0x023c,0x023b,0x023c,0x023b},{0x023d,0x023d,0x019a,0x023d}, +{0x023e,0x023e,0x2c66,0x023e},{0x023f,0x2c7e,0x023f,0x2c7e},{0x0240,0x2c7f,0x0240,0x2c7f},{0x0241,0x0241,0x0242,0x0241}, +{0x0242,0x0241,0x0242,0x0241},{0x0243,0x0243,0x0180,0x0243},{0x0244,0x0244,0x0289,0x0244},{0x0245,0x0245,0x028c,0x0245}, +{0x0246,0x0246,0x0247,0x0246},{0x0247,0x0246,0x0247,0x0246},{0x0248,0x0248,0x0249,0x0248},{0x0249,0x0248,0x0249,0x0248}, +{0x024a,0x024a,0x024b,0x024a},{0x024b,0x024a,0x024b,0x024a},{0x024c,0x024c,0x024d,0x024c},{0x024d,0x024c,0x024d,0x024c}, +{0x024e,0x024e,0x024f,0x024e},{0x024f,0x024e,0x024f,0x024e},{0x0250,0x2c6f,0x0250,0x2c6f},{0x0251,0x2c6d,0x0251,0x2c6d}, +{0x0252,0x2c70,0x0252,0x2c70},{0x0253,0x0181,0x0253,0x0181},{0x0254,0x0186,0x0254,0x0186},{0x0256,0x0189,0x0256,0x0189}, +{0x0257,0x018a,0x0257,0x018a},{0x0259,0x018f,0x0259,0x018f},{0x025b,0x0190,0x025b,0x0190},{0x025c,0xa7ab,0x025c,0xa7ab}, +{0x0260,0x0193,0x0260,0x0193},{0x0261,0xa7ac,0x0261,0xa7ac},{0x0263,0x0194,0x0263,0x0194},{0x0265,0xa78d,0x0265,0xa78d}, +{0x0266,0xa7aa,0x0266,0xa7aa},{0x0268,0x0197,0x0268,0x0197},{0x0269,0x0196,0x0269,0x0196},{0x026a,0xa7ae,0x026a,0xa7ae}, +{0x026b,0x2c62,0x026b,0x2c62},{0x026c,0xa7ad,0x026c,0xa7ad},{0x026f,0x019c,0x026f,0x019c},{0x0271,0x2c6e,0x0271,0x2c6e}, +{0x0272,0x019d,0x0272,0x019d},{0x0275,0x019f,0x0275,0x019f},{0x027d,0x2c64,0x027d,0x2c64},{0x0280,0x01a6,0x0280,0x01a6}, +{0x0282,0xa7c5,0x0282,0xa7c5},{0x0283,0x01a9,0x0283,0x01a9},{0x0287,0xa7b1,0x0287,0xa7b1},{0x0288,0x01ae,0x0288,0x01ae}, {0x0289,0x0244,0x0289,0x0244},{0x028a,0x01b1,0x028a,0x01b1},{0x028b,0x01b2,0x028b,0x01b2},{0x028c,0x0245,0x028c,0x0245}, {0x0292,0x01b7,0x0292,0x01b7},{0x029d,0xa7b2,0x029d,0xa7b2},{0x029e,0xa7b0,0x029e,0xa7b0},{0x0345,0x0399,0x0345,0x0399}, -{0xab53,0xa7b3,0xab53,0xa7b3},{0x0370,0x0370,0x0371,0x0370},{0xab70,0x13a0,0xab70,0x13a0},{0x0371,0x0370,0x0371,0x0370}, -{0xab71,0x13a1,0xab71,0x13a1},{0xab72,0x13a2,0xab72,0x13a2},{0x0372,0x0372,0x0373,0x0372},{0xab73,0x13a3,0xab73,0x13a3}, +{0xab53,0xa7b3,0xab53,0xa7b3},{0xab70,0x13a0,0xab70,0x13a0},{0x0370,0x0370,0x0371,0x0370},{0xab71,0x13a1,0xab71,0x13a1}, +{0x0371,0x0370,0x0371,0x0370},{0x0372,0x0372,0x0373,0x0372},{0xab72,0x13a2,0xab72,0x13a2},{0xab73,0x13a3,0xab73,0x13a3}, {0x0373,0x0372,0x0373,0x0372},{0xab74,0x13a4,0xab74,0x13a4},{0xab75,0x13a5,0xab75,0x13a5},{0xab76,0x13a6,0xab76,0x13a6}, {0x0376,0x0376,0x0377,0x0376},{0x0377,0x0376,0x0377,0x0376},{0xab77,0x13a7,0xab77,0x13a7},{0xab78,0x13a8,0xab78,0x13a8}, {0xab79,0x13a9,0xab79,0x13a9},{0xab7a,0x13aa,0xab7a,0x13aa},{0xab7b,0x13ab,0xab7b,0x13ab},{0x037b,0x03fd,0x037b,0x03fd}, -{0xab7c,0x13ac,0xab7c,0x13ac},{0x037c,0x03fe,0x037c,0x03fe},{0x037d,0x03ff,0x037d,0x03ff},{0xab7d,0x13ad,0xab7d,0x13ad}, -{0xab7e,0x13ae,0xab7e,0x13ae},{0x037f,0x037f,0x03f3,0x037f},{0xab7f,0x13af,0xab7f,0x13af},{0xab80,0x13b0,0xab80,0x13b0}, +{0x037c,0x03fe,0x037c,0x03fe},{0xab7c,0x13ac,0xab7c,0x13ac},{0xab7d,0x13ad,0xab7d,0x13ad},{0x037d,0x03ff,0x037d,0x03ff}, +{0xab7e,0x13ae,0xab7e,0x13ae},{0xab7f,0x13af,0xab7f,0x13af},{0x037f,0x037f,0x03f3,0x037f},{0xab80,0x13b0,0xab80,0x13b0}, {0xab81,0x13b1,0xab81,0x13b1},{0xab82,0x13b2,0xab82,0x13b2},{0xab83,0x13b3,0xab83,0x13b3},{0xab84,0x13b4,0xab84,0x13b4}, -{0xab85,0x13b5,0xab85,0x13b5},{0x0386,0x0386,0x03ac,0x0386},{0xab86,0x13b6,0xab86,0x13b6},{0xab87,0x13b7,0xab87,0x13b7}, +{0xab85,0x13b5,0xab85,0x13b5},{0xab86,0x13b6,0xab86,0x13b6},{0x0386,0x0386,0x03ac,0x0386},{0xab87,0x13b7,0xab87,0x13b7}, {0xab88,0x13b8,0xab88,0x13b8},{0x0388,0x0388,0x03ad,0x0388},{0x0389,0x0389,0x03ae,0x0389},{0xab89,0x13b9,0xab89,0x13b9}, {0x038a,0x038a,0x03af,0x038a},{0xab8a,0x13ba,0xab8a,0x13ba},{0xab8b,0x13bb,0xab8b,0x13bb},{0x038c,0x038c,0x03cc,0x038c}, {0xab8c,0x13bc,0xab8c,0x13bc},{0xab8d,0x13bd,0xab8d,0x13bd},{0x038e,0x038e,0x03cd,0x038e},{0xab8e,0x13be,0xab8e,0x13be}, -{0xab8f,0x13bf,0xab8f,0x13bf},{0x038f,0x038f,0x03ce,0x038f},{0xab90,0x13c0,0xab90,0x13c0},{0x0391,0x0391,0x03b1,0x0391}, -{0xab91,0x13c1,0xab91,0x13c1},{0x0392,0x0392,0x03b2,0x0392},{0xab92,0x13c2,0xab92,0x13c2},{0xab93,0x13c3,0xab93,0x13c3}, -{0x0393,0x0393,0x03b3,0x0393},{0xab94,0x13c4,0xab94,0x13c4},{0x0394,0x0394,0x03b4,0x0394},{0x0395,0x0395,0x03b5,0x0395}, -{0xab95,0x13c5,0xab95,0x13c5},{0x0396,0x0396,0x03b6,0x0396},{0xab96,0x13c6,0xab96,0x13c6},{0x0397,0x0397,0x03b7,0x0397}, -{0xab97,0x13c7,0xab97,0x13c7},{0xab98,0x13c8,0xab98,0x13c8},{0x0398,0x0398,0x03b8,0x0398},{0xab99,0x13c9,0xab99,0x13c9}, -{0x0399,0x0399,0x03b9,0x0399},{0x039a,0x039a,0x03ba,0x039a},{0xab9a,0x13ca,0xab9a,0x13ca},{0x039b,0x039b,0x03bb,0x039b}, -{0xab9b,0x13cb,0xab9b,0x13cb},{0xab9c,0x13cc,0xab9c,0x13cc},{0x039c,0x039c,0x03bc,0x039c},{0xab9d,0x13cd,0xab9d,0x13cd}, -{0x039d,0x039d,0x03bd,0x039d},{0xab9e,0x13ce,0xab9e,0x13ce},{0x039e,0x039e,0x03be,0x039e},{0x039f,0x039f,0x03bf,0x039f}, -{0xab9f,0x13cf,0xab9f,0x13cf},{0x13a0,0x13a0,0xab70,0x13a0},{0x03a0,0x03a0,0x03c0,0x03a0},{0xaba0,0x13d0,0xaba0,0x13d0}, -{0x03a1,0x03a1,0x03c1,0x03a1},{0x13a1,0x13a1,0xab71,0x13a1},{0xaba1,0x13d1,0xaba1,0x13d1},{0x13a2,0x13a2,0xab72,0x13a2}, -{0xaba2,0x13d2,0xaba2,0x13d2},{0x03a3,0x03a3,0x03c3,0x03a3},{0x13a3,0x13a3,0xab73,0x13a3},{0xaba3,0x13d3,0xaba3,0x13d3}, -{0x03a4,0x03a4,0x03c4,0x03a4},{0x13a4,0x13a4,0xab74,0x13a4},{0xaba4,0x13d4,0xaba4,0x13d4},{0xaba5,0x13d5,0xaba5,0x13d5}, -{0x13a5,0x13a5,0xab75,0x13a5},{0x03a5,0x03a5,0x03c5,0x03a5},{0xaba6,0x13d6,0xaba6,0x13d6},{0x13a6,0x13a6,0xab76,0x13a6}, +{0x038f,0x038f,0x03ce,0x038f},{0xab8f,0x13bf,0xab8f,0x13bf},{0xab90,0x13c0,0xab90,0x13c0},{0x0391,0x0391,0x03b1,0x0391}, +{0xab91,0x13c1,0xab91,0x13c1},{0x0392,0x0392,0x03b2,0x0392},{0xab92,0x13c2,0xab92,0x13c2},{0x0393,0x0393,0x03b3,0x0393}, +{0xab93,0x13c3,0xab93,0x13c3},{0xab94,0x13c4,0xab94,0x13c4},{0x0394,0x0394,0x03b4,0x0394},{0xab95,0x13c5,0xab95,0x13c5}, +{0x0395,0x0395,0x03b5,0x0395},{0x0396,0x0396,0x03b6,0x0396},{0xab96,0x13c6,0xab96,0x13c6},{0x0397,0x0397,0x03b7,0x0397}, +{0xab97,0x13c7,0xab97,0x13c7},{0x0398,0x0398,0x03b8,0x0398},{0xab98,0x13c8,0xab98,0x13c8},{0x0399,0x0399,0x03b9,0x0399}, +{0xab99,0x13c9,0xab99,0x13c9},{0xab9a,0x13ca,0xab9a,0x13ca},{0x039a,0x039a,0x03ba,0x039a},{0x039b,0x039b,0x03bb,0x039b}, +{0xab9b,0x13cb,0xab9b,0x13cb},{0xab9c,0x13cc,0xab9c,0x13cc},{0x039c,0x039c,0x03bc,0x039c},{0x039d,0x039d,0x03bd,0x039d}, +{0xab9d,0x13cd,0xab9d,0x13cd},{0x039e,0x039e,0x03be,0x039e},{0xab9e,0x13ce,0xab9e,0x13ce},{0xab9f,0x13cf,0xab9f,0x13cf}, +{0x039f,0x039f,0x03bf,0x039f},{0x03a0,0x03a0,0x03c0,0x03a0},{0x13a0,0x13a0,0xab70,0x13a0},{0xaba0,0x13d0,0xaba0,0x13d0}, +{0x13a1,0x13a1,0xab71,0x13a1},{0x03a1,0x03a1,0x03c1,0x03a1},{0xaba1,0x13d1,0xaba1,0x13d1},{0x13a2,0x13a2,0xab72,0x13a2}, +{0xaba2,0x13d2,0xaba2,0x13d2},{0x13a3,0x13a3,0xab73,0x13a3},{0xaba3,0x13d3,0xaba3,0x13d3},{0x03a3,0x03a3,0x03c3,0x03a3}, +{0x13a4,0x13a4,0xab74,0x13a4},{0x03a4,0x03a4,0x03c4,0x03a4},{0xaba4,0x13d4,0xaba4,0x13d4},{0x03a5,0x03a5,0x03c5,0x03a5}, +{0xaba5,0x13d5,0xaba5,0x13d5},{0x13a5,0x13a5,0xab75,0x13a5},{0x13a6,0x13a6,0xab76,0x13a6},{0xaba6,0x13d6,0xaba6,0x13d6}, {0x03a6,0x03a6,0x03c6,0x03a6},{0x13a7,0x13a7,0xab77,0x13a7},{0xaba7,0x13d7,0xaba7,0x13d7},{0x03a7,0x03a7,0x03c7,0x03a7}, -{0xaba8,0x13d8,0xaba8,0x13d8},{0x13a8,0x13a8,0xab78,0x13a8},{0x03a8,0x03a8,0x03c8,0x03a8},{0xaba9,0x13d9,0xaba9,0x13d9}, -{0x03a9,0x03a9,0x03c9,0x03a9},{0x13a9,0x13a9,0xab79,0x13a9},{0x13aa,0x13aa,0xab7a,0x13aa},{0xabaa,0x13da,0xabaa,0x13da}, -{0x03aa,0x03aa,0x03ca,0x03aa},{0x13ab,0x13ab,0xab7b,0x13ab},{0xabab,0x13db,0xabab,0x13db},{0x03ab,0x03ab,0x03cb,0x03ab}, -{0xabac,0x13dc,0xabac,0x13dc},{0x13ac,0x13ac,0xab7c,0x13ac},{0x03ac,0x0386,0x03ac,0x0386},{0x03ad,0x0388,0x03ad,0x0388}, -{0x13ad,0x13ad,0xab7d,0x13ad},{0xabad,0x13dd,0xabad,0x13dd},{0xabae,0x13de,0xabae,0x13de},{0x03ae,0x0389,0x03ae,0x0389}, -{0x13ae,0x13ae,0xab7e,0x13ae},{0x13af,0x13af,0xab7f,0x13af},{0xabaf,0x13df,0xabaf,0x13df},{0x03af,0x038a,0x03af,0x038a}, -{0x13b0,0x13b0,0xab80,0x13b0},{0xabb0,0x13e0,0xabb0,0x13e0},{0x13b1,0x13b1,0xab81,0x13b1},{0x03b1,0x0391,0x03b1,0x0391}, -{0xabb1,0x13e1,0xabb1,0x13e1},{0x13b2,0x13b2,0xab82,0x13b2},{0xabb2,0x13e2,0xabb2,0x13e2},{0x03b2,0x0392,0x03b2,0x0392}, +{0x13a8,0x13a8,0xab78,0x13a8},{0x03a8,0x03a8,0x03c8,0x03a8},{0xaba8,0x13d8,0xaba8,0x13d8},{0x13a9,0x13a9,0xab79,0x13a9}, +{0xaba9,0x13d9,0xaba9,0x13d9},{0x03a9,0x03a9,0x03c9,0x03a9},{0x03aa,0x03aa,0x03ca,0x03aa},{0xabaa,0x13da,0xabaa,0x13da}, +{0x13aa,0x13aa,0xab7a,0x13aa},{0xabab,0x13db,0xabab,0x13db},{0x13ab,0x13ab,0xab7b,0x13ab},{0x03ab,0x03ab,0x03cb,0x03ab}, +{0xabac,0x13dc,0xabac,0x13dc},{0x03ac,0x0386,0x03ac,0x0386},{0x13ac,0x13ac,0xab7c,0x13ac},{0x03ad,0x0388,0x03ad,0x0388}, +{0x13ad,0x13ad,0xab7d,0x13ad},{0xabad,0x13dd,0xabad,0x13dd},{0x03ae,0x0389,0x03ae,0x0389},{0x13ae,0x13ae,0xab7e,0x13ae}, +{0xabae,0x13de,0xabae,0x13de},{0x13af,0x13af,0xab7f,0x13af},{0xabaf,0x13df,0xabaf,0x13df},{0x03af,0x038a,0x03af,0x038a}, +{0x13b0,0x13b0,0xab80,0x13b0},{0xabb0,0x13e0,0xabb0,0x13e0},{0xabb1,0x13e1,0xabb1,0x13e1},{0x03b1,0x0391,0x03b1,0x0391}, +{0x13b1,0x13b1,0xab81,0x13b1},{0xabb2,0x13e2,0xabb2,0x13e2},{0x13b2,0x13b2,0xab82,0x13b2},{0x03b2,0x0392,0x03b2,0x0392}, {0x03b3,0x0393,0x03b3,0x0393},{0xabb3,0x13e3,0xabb3,0x13e3},{0x13b3,0x13b3,0xab83,0x13b3},{0x13b4,0x13b4,0xab84,0x13b4}, -{0xabb4,0x13e4,0xabb4,0x13e4},{0x03b4,0x0394,0x03b4,0x0394},{0x13b5,0x13b5,0xab85,0x13b5},{0x03b5,0x0395,0x03b5,0x0395}, -{0xabb5,0x13e5,0xabb5,0x13e5},{0x13b6,0x13b6,0xab86,0x13b6},{0xabb6,0x13e6,0xabb6,0x13e6},{0x03b6,0x0396,0x03b6,0x0396}, +{0xabb4,0x13e4,0xabb4,0x13e4},{0x03b4,0x0394,0x03b4,0x0394},{0x03b5,0x0395,0x03b5,0x0395},{0xabb5,0x13e5,0xabb5,0x13e5}, +{0x13b5,0x13b5,0xab85,0x13b5},{0x13b6,0x13b6,0xab86,0x13b6},{0xabb6,0x13e6,0xabb6,0x13e6},{0x03b6,0x0396,0x03b6,0x0396}, {0x03b7,0x0397,0x03b7,0x0397},{0xabb7,0x13e7,0xabb7,0x13e7},{0x13b7,0x13b7,0xab87,0x13b7},{0x03b8,0x0398,0x03b8,0x0398}, -{0x13b8,0x13b8,0xab88,0x13b8},{0xabb8,0x13e8,0xabb8,0x13e8},{0xabb9,0x13e9,0xabb9,0x13e9},{0x13b9,0x13b9,0xab89,0x13b9}, -{0x03b9,0x0399,0x03b9,0x0399},{0x03ba,0x039a,0x03ba,0x039a},{0x13ba,0x13ba,0xab8a,0x13ba},{0xabba,0x13ea,0xabba,0x13ea}, -{0xabbb,0x13eb,0xabbb,0x13eb},{0x03bb,0x039b,0x03bb,0x039b},{0x13bb,0x13bb,0xab8b,0x13bb},{0xabbc,0x13ec,0xabbc,0x13ec}, +{0x13b8,0x13b8,0xab88,0x13b8},{0xabb8,0x13e8,0xabb8,0x13e8},{0xabb9,0x13e9,0xabb9,0x13e9},{0x03b9,0x0399,0x03b9,0x0399}, +{0x13b9,0x13b9,0xab89,0x13b9},{0x03ba,0x039a,0x03ba,0x039a},{0xabba,0x13ea,0xabba,0x13ea},{0x13ba,0x13ba,0xab8a,0x13ba}, +{0xabbb,0x13eb,0xabbb,0x13eb},{0x13bb,0x13bb,0xab8b,0x13bb},{0x03bb,0x039b,0x03bb,0x039b},{0xabbc,0x13ec,0xabbc,0x13ec}, {0x13bc,0x13bc,0xab8c,0x13bc},{0x03bc,0x039c,0x03bc,0x039c},{0x03bd,0x039d,0x03bd,0x039d},{0x13bd,0x13bd,0xab8d,0x13bd}, -{0xabbd,0x13ed,0xabbd,0x13ed},{0x03be,0x039e,0x03be,0x039e},{0x13be,0x13be,0xab8e,0x13be},{0xabbe,0x13ee,0xabbe,0x13ee}, -{0x13bf,0x13bf,0xab8f,0x13bf},{0x03bf,0x039f,0x03bf,0x039f},{0xabbf,0x13ef,0xabbf,0x13ef},{0x13c0,0x13c0,0xab90,0x13c0}, -{0x03c0,0x03a0,0x03c0,0x03a0},{0x13c1,0x13c1,0xab91,0x13c1},{0x03c1,0x03a1,0x03c1,0x03a1},{0x13c2,0x13c2,0xab92,0x13c2}, -{0x03c2,0x03a3,0x03c2,0x03a3},{0x13c3,0x13c3,0xab93,0x13c3},{0x03c3,0x03a3,0x03c3,0x03a3},{0x03c4,0x03a4,0x03c4,0x03a4}, -{0x13c4,0x13c4,0xab94,0x13c4},{0x13c5,0x13c5,0xab95,0x13c5},{0x03c5,0x03a5,0x03c5,0x03a5},{0x03c6,0x03a6,0x03c6,0x03a6}, -{0x13c6,0x13c6,0xab96,0x13c6},{0x03c7,0x03a7,0x03c7,0x03a7},{0x13c7,0x13c7,0xab97,0x13c7},{0x13c8,0x13c8,0xab98,0x13c8}, -{0x03c8,0x03a8,0x03c8,0x03a8},{0x03c9,0x03a9,0x03c9,0x03a9},{0x13c9,0x13c9,0xab99,0x13c9},{0x13ca,0x13ca,0xab9a,0x13ca}, -{0x03ca,0x03aa,0x03ca,0x03aa},{0x13cb,0x13cb,0xab9b,0x13cb},{0x03cb,0x03ab,0x03cb,0x03ab},{0x13cc,0x13cc,0xab9c,0x13cc}, -{0x03cc,0x038c,0x03cc,0x038c},{0x13cd,0x13cd,0xab9d,0x13cd},{0x03cd,0x038e,0x03cd,0x038e},{0x03ce,0x038f,0x03ce,0x038f}, -{0x13ce,0x13ce,0xab9e,0x13ce},{0x03cf,0x03cf,0x03d7,0x03cf},{0x13cf,0x13cf,0xab9f,0x13cf},{0x03d0,0x0392,0x03d0,0x0392}, +{0xabbd,0x13ed,0xabbd,0x13ed},{0xabbe,0x13ee,0xabbe,0x13ee},{0x13be,0x13be,0xab8e,0x13be},{0x03be,0x039e,0x03be,0x039e}, +{0xabbf,0x13ef,0xabbf,0x13ef},{0x03bf,0x039f,0x03bf,0x039f},{0x13bf,0x13bf,0xab8f,0x13bf},{0x03c0,0x03a0,0x03c0,0x03a0}, +{0x13c0,0x13c0,0xab90,0x13c0},{0x13c1,0x13c1,0xab91,0x13c1},{0x03c1,0x03a1,0x03c1,0x03a1},{0x03c2,0x03a3,0x03c2,0x03a3}, +{0x13c2,0x13c2,0xab92,0x13c2},{0x13c3,0x13c3,0xab93,0x13c3},{0x03c3,0x03a3,0x03c3,0x03a3},{0x03c4,0x03a4,0x03c4,0x03a4}, +{0x13c4,0x13c4,0xab94,0x13c4},{0x13c5,0x13c5,0xab95,0x13c5},{0x03c5,0x03a5,0x03c5,0x03a5},{0x13c6,0x13c6,0xab96,0x13c6}, +{0x03c6,0x03a6,0x03c6,0x03a6},{0x03c7,0x03a7,0x03c7,0x03a7},{0x13c7,0x13c7,0xab97,0x13c7},{0x03c8,0x03a8,0x03c8,0x03a8}, +{0x13c8,0x13c8,0xab98,0x13c8},{0x03c9,0x03a9,0x03c9,0x03a9},{0x13c9,0x13c9,0xab99,0x13c9},{0x03ca,0x03aa,0x03ca,0x03aa}, +{0x13ca,0x13ca,0xab9a,0x13ca},{0x13cb,0x13cb,0xab9b,0x13cb},{0x03cb,0x03ab,0x03cb,0x03ab},{0x13cc,0x13cc,0xab9c,0x13cc}, +{0x03cc,0x038c,0x03cc,0x038c},{0x13cd,0x13cd,0xab9d,0x13cd},{0x03cd,0x038e,0x03cd,0x038e},{0x13ce,0x13ce,0xab9e,0x13ce}, +{0x03ce,0x038f,0x03ce,0x038f},{0x03cf,0x03cf,0x03d7,0x03cf},{0x13cf,0x13cf,0xab9f,0x13cf},{0x03d0,0x0392,0x03d0,0x0392}, {0x13d0,0x13d0,0xaba0,0x13d0},{0x13d1,0x13d1,0xaba1,0x13d1},{0x03d1,0x0398,0x03d1,0x0398},{0x13d2,0x13d2,0xaba2,0x13d2}, {0x13d3,0x13d3,0xaba3,0x13d3},{0x13d4,0x13d4,0xaba4,0x13d4},{0x03d5,0x03a6,0x03d5,0x03a6},{0x13d5,0x13d5,0xaba5,0x13d5}, -{0x03d6,0x03a0,0x03d6,0x03a0},{0x13d6,0x13d6,0xaba6,0x13d6},{0x13d7,0x13d7,0xaba7,0x13d7},{0x03d7,0x03cf,0x03d7,0x03cf}, -{0x03d8,0x03d8,0x03d9,0x03d8},{0x13d8,0x13d8,0xaba8,0x13d8},{0x13d9,0x13d9,0xaba9,0x13d9},{0x03d9,0x03d8,0x03d9,0x03d8}, +{0x03d6,0x03a0,0x03d6,0x03a0},{0x13d6,0x13d6,0xaba6,0x13d6},{0x03d7,0x03cf,0x03d7,0x03cf},{0x13d7,0x13d7,0xaba7,0x13d7}, +{0x03d8,0x03d8,0x03d9,0x03d8},{0x13d8,0x13d8,0xaba8,0x13d8},{0x03d9,0x03d8,0x03d9,0x03d8},{0x13d9,0x13d9,0xaba9,0x13d9}, {0x03da,0x03da,0x03db,0x03da},{0x13da,0x13da,0xabaa,0x13da},{0x13db,0x13db,0xabab,0x13db},{0x03db,0x03da,0x03db,0x03da}, -{0x13dc,0x13dc,0xabac,0x13dc},{0x03dc,0x03dc,0x03dd,0x03dc},{0x03dd,0x03dc,0x03dd,0x03dc},{0x13dd,0x13dd,0xabad,0x13dd}, -{0x13de,0x13de,0xabae,0x13de},{0x03de,0x03de,0x03df,0x03de},{0x03df,0x03de,0x03df,0x03de},{0x13df,0x13df,0xabaf,0x13df}, -{0x03e0,0x03e0,0x03e1,0x03e0},{0x13e0,0x13e0,0xabb0,0x13e0},{0x03e1,0x03e0,0x03e1,0x03e0},{0x13e1,0x13e1,0xabb1,0x13e1}, -{0x03e2,0x03e2,0x03e3,0x03e2},{0x13e2,0x13e2,0xabb2,0x13e2},{0x03e3,0x03e2,0x03e3,0x03e2},{0x13e3,0x13e3,0xabb3,0x13e3}, -{0x13e4,0x13e4,0xabb4,0x13e4},{0x03e4,0x03e4,0x03e5,0x03e4},{0x13e5,0x13e5,0xabb5,0x13e5},{0x03e5,0x03e4,0x03e5,0x03e4}, -{0x13e6,0x13e6,0xabb6,0x13e6},{0x03e6,0x03e6,0x03e7,0x03e6},{0x13e7,0x13e7,0xabb7,0x13e7},{0x03e7,0x03e6,0x03e7,0x03e6}, -{0x03e8,0x03e8,0x03e9,0x03e8},{0x13e8,0x13e8,0xabb8,0x13e8},{0x03e9,0x03e8,0x03e9,0x03e8},{0x13e9,0x13e9,0xabb9,0x13e9}, -{0x03ea,0x03ea,0x03eb,0x03ea},{0x13ea,0x13ea,0xabba,0x13ea},{0x13eb,0x13eb,0xabbb,0x13eb},{0x03eb,0x03ea,0x03eb,0x03ea}, -{0x03ec,0x03ec,0x03ed,0x03ec},{0x13ec,0x13ec,0xabbc,0x13ec},{0x13ed,0x13ed,0xabbd,0x13ed},{0x03ed,0x03ec,0x03ed,0x03ec}, -{0x13ee,0x13ee,0xabbe,0x13ee},{0x03ee,0x03ee,0x03ef,0x03ee},{0x13ef,0x13ef,0xabbf,0x13ef},{0x03ef,0x03ee,0x03ef,0x03ee}, -{0x13f0,0x13f0,0x13f8,0x13f0},{0x03f0,0x039a,0x03f0,0x039a},{0x13f1,0x13f1,0x13f9,0x13f1},{0x03f1,0x03a1,0x03f1,0x03a1}, -{0x03f2,0x03f9,0x03f2,0x03f9},{0x13f2,0x13f2,0x13fa,0x13f2},{0x13f3,0x13f3,0x13fb,0x13f3},{0x03f3,0x037f,0x03f3,0x037f}, +{0x03dc,0x03dc,0x03dd,0x03dc},{0x13dc,0x13dc,0xabac,0x13dc},{0x03dd,0x03dc,0x03dd,0x03dc},{0x13dd,0x13dd,0xabad,0x13dd}, +{0x03de,0x03de,0x03df,0x03de},{0x13de,0x13de,0xabae,0x13de},{0x13df,0x13df,0xabaf,0x13df},{0x03df,0x03de,0x03df,0x03de}, +{0x13e0,0x13e0,0xabb0,0x13e0},{0x03e0,0x03e0,0x03e1,0x03e0},{0x13e1,0x13e1,0xabb1,0x13e1},{0x03e1,0x03e0,0x03e1,0x03e0}, +{0x13e2,0x13e2,0xabb2,0x13e2},{0x03e2,0x03e2,0x03e3,0x03e2},{0x03e3,0x03e2,0x03e3,0x03e2},{0x13e3,0x13e3,0xabb3,0x13e3}, +{0x03e4,0x03e4,0x03e5,0x03e4},{0x13e4,0x13e4,0xabb4,0x13e4},{0x13e5,0x13e5,0xabb5,0x13e5},{0x03e5,0x03e4,0x03e5,0x03e4}, +{0x03e6,0x03e6,0x03e7,0x03e6},{0x13e6,0x13e6,0xabb6,0x13e6},{0x13e7,0x13e7,0xabb7,0x13e7},{0x03e7,0x03e6,0x03e7,0x03e6}, +{0x13e8,0x13e8,0xabb8,0x13e8},{0x03e8,0x03e8,0x03e9,0x03e8},{0x03e9,0x03e8,0x03e9,0x03e8},{0x13e9,0x13e9,0xabb9,0x13e9}, +{0x03ea,0x03ea,0x03eb,0x03ea},{0x13ea,0x13ea,0xabba,0x13ea},{0x03eb,0x03ea,0x03eb,0x03ea},{0x13eb,0x13eb,0xabbb,0x13eb}, +{0x13ec,0x13ec,0xabbc,0x13ec},{0x03ec,0x03ec,0x03ed,0x03ec},{0x13ed,0x13ed,0xabbd,0x13ed},{0x03ed,0x03ec,0x03ed,0x03ec}, +{0x13ee,0x13ee,0xabbe,0x13ee},{0x03ee,0x03ee,0x03ef,0x03ee},{0x03ef,0x03ee,0x03ef,0x03ee},{0x13ef,0x13ef,0xabbf,0x13ef}, +{0x13f0,0x13f0,0x13f8,0x13f0},{0x03f0,0x039a,0x03f0,0x039a},{0x03f1,0x03a1,0x03f1,0x03a1},{0x13f1,0x13f1,0x13f9,0x13f1}, +{0x13f2,0x13f2,0x13fa,0x13f2},{0x03f2,0x03f9,0x03f2,0x03f9},{0x03f3,0x037f,0x03f3,0x037f},{0x13f3,0x13f3,0x13fb,0x13f3}, {0x03f4,0x03f4,0x03b8,0x03f4},{0x13f4,0x13f4,0x13fc,0x13f4},{0x03f5,0x0395,0x03f5,0x0395},{0x13f5,0x13f5,0x13fd,0x13f5}, -{0x03f7,0x03f7,0x03f8,0x03f7},{0x03f8,0x03f7,0x03f8,0x03f7},{0x13f8,0x13f0,0x13f8,0x13f0},{0x03f9,0x03f9,0x03f2,0x03f9}, -{0x13f9,0x13f1,0x13f9,0x13f1},{0x13fa,0x13f2,0x13fa,0x13f2},{0x03fa,0x03fa,0x03fb,0x03fa},{0x13fb,0x13f3,0x13fb,0x13f3}, -{0x03fb,0x03fa,0x03fb,0x03fa},{0x13fc,0x13f4,0x13fc,0x13f4},{0x03fd,0x03fd,0x037b,0x03fd},{0x13fd,0x13f5,0x13fd,0x13f5}, +{0x03f7,0x03f7,0x03f8,0x03f7},{0x13f8,0x13f0,0x13f8,0x13f0},{0x03f8,0x03f7,0x03f8,0x03f7},{0x13f9,0x13f1,0x13f9,0x13f1}, +{0x03f9,0x03f9,0x03f2,0x03f9},{0x13fa,0x13f2,0x13fa,0x13f2},{0x03fa,0x03fa,0x03fb,0x03fa},{0x03fb,0x03fa,0x03fb,0x03fa}, +{0x13fb,0x13f3,0x13fb,0x13f3},{0x13fc,0x13f4,0x13fc,0x13f4},{0x13fd,0x13f5,0x13fd,0x13f5},{0x03fd,0x03fd,0x037b,0x03fd}, {0x03fe,0x03fe,0x037c,0x03fe},{0x03ff,0x03ff,0x037d,0x03ff},{0x0400,0x0400,0x0450,0x0400},{0x2c00,0x2c00,0x2c30,0x2c00}, -{0x10400,0x10400,0x10428,0x10400},{0x0401,0x0401,0x0451,0x0401},{0x10401,0x10401,0x10429,0x10401},{0x2c01,0x2c01,0x2c31,0x2c01}, +{0x10400,0x10400,0x10428,0x10400},{0x2c01,0x2c01,0x2c31,0x2c01},{0x0401,0x0401,0x0451,0x0401},{0x10401,0x10401,0x10429,0x10401}, {0x0402,0x0402,0x0452,0x0402},{0x10402,0x10402,0x1042a,0x10402},{0x2c02,0x2c02,0x2c32,0x2c02},{0x10403,0x10403,0x1042b,0x10403}, -{0x0403,0x0403,0x0453,0x0403},{0x2c03,0x2c03,0x2c33,0x2c03},{0x0404,0x0404,0x0454,0x0404},{0x2c04,0x2c04,0x2c34,0x2c04}, -{0x10404,0x10404,0x1042c,0x10404},{0x0405,0x0405,0x0455,0x0405},{0x10405,0x10405,0x1042d,0x10405},{0x2c05,0x2c05,0x2c35,0x2c05}, -{0x10406,0x10406,0x1042e,0x10406},{0x0406,0x0406,0x0456,0x0406},{0x2c06,0x2c06,0x2c36,0x2c06},{0x0407,0x0407,0x0457,0x0407}, -{0x2c07,0x2c07,0x2c37,0x2c07},{0x10407,0x10407,0x1042f,0x10407},{0x0408,0x0408,0x0458,0x0408},{0x2c08,0x2c08,0x2c38,0x2c08}, -{0x10408,0x10408,0x10430,0x10408},{0x2c09,0x2c09,0x2c39,0x2c09},{0x0409,0x0409,0x0459,0x0409},{0x10409,0x10409,0x10431,0x10409}, -{0x1040a,0x1040a,0x10432,0x1040a},{0x040a,0x040a,0x045a,0x040a},{0x2c0a,0x2c0a,0x2c3a,0x2c0a},{0x1040b,0x1040b,0x10433,0x1040b}, -{0x040b,0x040b,0x045b,0x040b},{0x2c0b,0x2c0b,0x2c3b,0x2c0b},{0x040c,0x040c,0x045c,0x040c},{0x2c0c,0x2c0c,0x2c3c,0x2c0c}, -{0x1040c,0x1040c,0x10434,0x1040c},{0x040d,0x040d,0x045d,0x040d},{0x1040d,0x1040d,0x10435,0x1040d},{0x2c0d,0x2c0d,0x2c3d,0x2c0d}, -{0x040e,0x040e,0x045e,0x040e},{0x2c0e,0x2c0e,0x2c3e,0x2c0e},{0x1040e,0x1040e,0x10436,0x1040e},{0x2c0f,0x2c0f,0x2c3f,0x2c0f}, -{0x1040f,0x1040f,0x10437,0x1040f},{0x040f,0x040f,0x045f,0x040f},{0x2c10,0x2c10,0x2c40,0x2c10},{0x0410,0x0410,0x0430,0x0410}, -{0x10410,0x10410,0x10438,0x10410},{0x2c11,0x2c11,0x2c41,0x2c11},{0x10411,0x10411,0x10439,0x10411},{0x0411,0x0411,0x0431,0x0411}, -{0x2c12,0x2c12,0x2c42,0x2c12},{0x10412,0x10412,0x1043a,0x10412},{0x0412,0x0412,0x0432,0x0412},{0x10413,0x10413,0x1043b,0x10413}, -{0x2c13,0x2c13,0x2c43,0x2c13},{0x0413,0x0413,0x0433,0x0413},{0x10414,0x10414,0x1043c,0x10414},{0x2c14,0x2c14,0x2c44,0x2c14}, -{0x0414,0x0414,0x0434,0x0414},{0x0415,0x0415,0x0435,0x0415},{0x2c15,0x2c15,0x2c45,0x2c15},{0x10415,0x10415,0x1043d,0x10415}, -{0x10416,0x10416,0x1043e,0x10416},{0x2c16,0x2c16,0x2c46,0x2c16},{0x0416,0x0416,0x0436,0x0416},{0x2c17,0x2c17,0x2c47,0x2c17}, -{0x10417,0x10417,0x1043f,0x10417},{0x0417,0x0417,0x0437,0x0417},{0x10418,0x10418,0x10440,0x10418},{0x0418,0x0418,0x0438,0x0418}, -{0x2c18,0x2c18,0x2c48,0x2c18},{0x2c19,0x2c19,0x2c49,0x2c19},{0x10419,0x10419,0x10441,0x10419},{0x0419,0x0419,0x0439,0x0419}, -{0x041a,0x041a,0x043a,0x041a},{0x2c1a,0x2c1a,0x2c4a,0x2c1a},{0x1041a,0x1041a,0x10442,0x1041a},{0x1041b,0x1041b,0x10443,0x1041b}, -{0x2c1b,0x2c1b,0x2c4b,0x2c1b},{0x041b,0x041b,0x043b,0x041b},{0x041c,0x041c,0x043c,0x041c},{0x2c1c,0x2c1c,0x2c4c,0x2c1c}, -{0x1041c,0x1041c,0x10444,0x1041c},{0x041d,0x041d,0x043d,0x041d},{0x1041d,0x1041d,0x10445,0x1041d},{0x2c1d,0x2c1d,0x2c4d,0x2c1d}, -{0x041e,0x041e,0x043e,0x041e},{0x1041e,0x1041e,0x10446,0x1041e},{0x2c1e,0x2c1e,0x2c4e,0x2c1e},{0x2c1f,0x2c1f,0x2c4f,0x2c1f}, -{0x1041f,0x1041f,0x10447,0x1041f},{0x041f,0x041f,0x043f,0x041f},{0x0420,0x0420,0x0440,0x0420},{0x10420,0x10420,0x10448,0x10420}, -{0x2c20,0x2c20,0x2c50,0x2c20},{0x10421,0x10421,0x10449,0x10421},{0x0421,0x0421,0x0441,0x0421},{0x2c21,0x2c21,0x2c51,0x2c21}, -{0x0422,0x0422,0x0442,0x0422},{0x2c22,0x2c22,0x2c52,0x2c22},{0x10422,0x10422,0x1044a,0x10422},{0x10423,0x10423,0x1044b,0x10423}, -{0x2c23,0x2c23,0x2c53,0x2c23},{0x0423,0x0423,0x0443,0x0423},{0x2c24,0x2c24,0x2c54,0x2c24},{0x0424,0x0424,0x0444,0x0424}, -{0x10424,0x10424,0x1044c,0x10424},{0x10425,0x10425,0x1044d,0x10425},{0x2c25,0x2c25,0x2c55,0x2c25},{0x0425,0x0425,0x0445,0x0425}, -{0x10426,0x10426,0x1044e,0x10426},{0x0426,0x0426,0x0446,0x0426},{0x2c26,0x2c26,0x2c56,0x2c26},{0x0427,0x0427,0x0447,0x0427}, -{0x10427,0x10427,0x1044f,0x10427},{0x2c27,0x2c27,0x2c57,0x2c27},{0x2c28,0x2c28,0x2c58,0x2c28},{0x0428,0x0428,0x0448,0x0428}, -{0x10428,0x10400,0x10428,0x10400},{0x0429,0x0429,0x0449,0x0429},{0x2c29,0x2c29,0x2c59,0x2c29},{0x10429,0x10401,0x10429,0x10401}, -{0x042a,0x042a,0x044a,0x042a},{0x1042a,0x10402,0x1042a,0x10402},{0x2c2a,0x2c2a,0x2c5a,0x2c2a},{0x1042b,0x10403,0x1042b,0x10403}, -{0x042b,0x042b,0x044b,0x042b},{0x2c2b,0x2c2b,0x2c5b,0x2c2b},{0x042c,0x042c,0x044c,0x042c},{0x1042c,0x10404,0x1042c,0x10404}, -{0x2c2c,0x2c2c,0x2c5c,0x2c2c},{0x042d,0x042d,0x044d,0x042d},{0x2c2d,0x2c2d,0x2c5d,0x2c2d},{0x1042d,0x10405,0x1042d,0x10405}, -{0x042e,0x042e,0x044e,0x042e},{0x1042e,0x10406,0x1042e,0x10406},{0x2c2e,0x2c2e,0x2c5e,0x2c2e},{0x1042f,0x10407,0x1042f,0x10407}, -{0x042f,0x042f,0x044f,0x042f},{0x2c30,0x2c00,0x2c30,0x2c00},{0x10430,0x10408,0x10430,0x10408},{0x0430,0x0410,0x0430,0x0410}, +{0x0403,0x0403,0x0453,0x0403},{0x2c03,0x2c03,0x2c33,0x2c03},{0x10404,0x10404,0x1042c,0x10404},{0x0404,0x0404,0x0454,0x0404}, +{0x2c04,0x2c04,0x2c34,0x2c04},{0x10405,0x10405,0x1042d,0x10405},{0x0405,0x0405,0x0455,0x0405},{0x2c05,0x2c05,0x2c35,0x2c05}, +{0x10406,0x10406,0x1042e,0x10406},{0x2c06,0x2c06,0x2c36,0x2c06},{0x0406,0x0406,0x0456,0x0406},{0x0407,0x0407,0x0457,0x0407}, +{0x2c07,0x2c07,0x2c37,0x2c07},{0x10407,0x10407,0x1042f,0x10407},{0x0408,0x0408,0x0458,0x0408},{0x10408,0x10408,0x10430,0x10408}, +{0x2c08,0x2c08,0x2c38,0x2c08},{0x2c09,0x2c09,0x2c39,0x2c09},{0x0409,0x0409,0x0459,0x0409},{0x10409,0x10409,0x10431,0x10409}, +{0x1040a,0x1040a,0x10432,0x1040a},{0x2c0a,0x2c0a,0x2c3a,0x2c0a},{0x040a,0x040a,0x045a,0x040a},{0x1040b,0x1040b,0x10433,0x1040b}, +{0x040b,0x040b,0x045b,0x040b},{0x2c0b,0x2c0b,0x2c3b,0x2c0b},{0x2c0c,0x2c0c,0x2c3c,0x2c0c},{0x1040c,0x1040c,0x10434,0x1040c}, +{0x040c,0x040c,0x045c,0x040c},{0x2c0d,0x2c0d,0x2c3d,0x2c0d},{0x040d,0x040d,0x045d,0x040d},{0x1040d,0x1040d,0x10435,0x1040d}, +{0x2c0e,0x2c0e,0x2c3e,0x2c0e},{0x040e,0x040e,0x045e,0x040e},{0x1040e,0x1040e,0x10436,0x1040e},{0x2c0f,0x2c0f,0x2c3f,0x2c0f}, +{0x040f,0x040f,0x045f,0x040f},{0x1040f,0x1040f,0x10437,0x1040f},{0x0410,0x0410,0x0430,0x0410},{0x10410,0x10410,0x10438,0x10410}, +{0x2c10,0x2c10,0x2c40,0x2c10},{0x2c11,0x2c11,0x2c41,0x2c11},{0x10411,0x10411,0x10439,0x10411},{0x0411,0x0411,0x0431,0x0411}, +{0x10412,0x10412,0x1043a,0x10412},{0x2c12,0x2c12,0x2c42,0x2c12},{0x0412,0x0412,0x0432,0x0412},{0x2c13,0x2c13,0x2c43,0x2c13}, +{0x0413,0x0413,0x0433,0x0413},{0x10413,0x10413,0x1043b,0x10413},{0x10414,0x10414,0x1043c,0x10414},{0x0414,0x0414,0x0434,0x0414}, +{0x2c14,0x2c14,0x2c44,0x2c14},{0x0415,0x0415,0x0435,0x0415},{0x10415,0x10415,0x1043d,0x10415},{0x2c15,0x2c15,0x2c45,0x2c15}, +{0x2c16,0x2c16,0x2c46,0x2c16},{0x10416,0x10416,0x1043e,0x10416},{0x0416,0x0416,0x0436,0x0416},{0x2c17,0x2c17,0x2c47,0x2c17}, +{0x10417,0x10417,0x1043f,0x10417},{0x0417,0x0417,0x0437,0x0417},{0x2c18,0x2c18,0x2c48,0x2c18},{0x0418,0x0418,0x0438,0x0418}, +{0x10418,0x10418,0x10440,0x10418},{0x2c19,0x2c19,0x2c49,0x2c19},{0x10419,0x10419,0x10441,0x10419},{0x0419,0x0419,0x0439,0x0419}, +{0x2c1a,0x2c1a,0x2c4a,0x2c1a},{0x1041a,0x1041a,0x10442,0x1041a},{0x041a,0x041a,0x043a,0x041a},{0x2c1b,0x2c1b,0x2c4b,0x2c1b}, +{0x041b,0x041b,0x043b,0x041b},{0x1041b,0x1041b,0x10443,0x1041b},{0x041c,0x041c,0x043c,0x041c},{0x1041c,0x1041c,0x10444,0x1041c}, +{0x2c1c,0x2c1c,0x2c4c,0x2c1c},{0x041d,0x041d,0x043d,0x041d},{0x2c1d,0x2c1d,0x2c4d,0x2c1d},{0x1041d,0x1041d,0x10445,0x1041d}, +{0x1041e,0x1041e,0x10446,0x1041e},{0x2c1e,0x2c1e,0x2c4e,0x2c1e},{0x041e,0x041e,0x043e,0x041e},{0x1041f,0x1041f,0x10447,0x1041f}, +{0x041f,0x041f,0x043f,0x041f},{0x2c1f,0x2c1f,0x2c4f,0x2c1f},{0x2c20,0x2c20,0x2c50,0x2c20},{0x10420,0x10420,0x10448,0x10420}, +{0x0420,0x0420,0x0440,0x0420},{0x0421,0x0421,0x0441,0x0421},{0x2c21,0x2c21,0x2c51,0x2c21},{0x10421,0x10421,0x10449,0x10421}, +{0x2c22,0x2c22,0x2c52,0x2c22},{0x0422,0x0422,0x0442,0x0422},{0x10422,0x10422,0x1044a,0x10422},{0x0423,0x0423,0x0443,0x0423}, +{0x2c23,0x2c23,0x2c53,0x2c23},{0x10423,0x10423,0x1044b,0x10423},{0x0424,0x0424,0x0444,0x0424},{0x2c24,0x2c24,0x2c54,0x2c24}, +{0x10424,0x10424,0x1044c,0x10424},{0x0425,0x0425,0x0445,0x0425},{0x2c25,0x2c25,0x2c55,0x2c25},{0x10425,0x10425,0x1044d,0x10425}, +{0x0426,0x0426,0x0446,0x0426},{0x10426,0x10426,0x1044e,0x10426},{0x2c26,0x2c26,0x2c56,0x2c26},{0x2c27,0x2c27,0x2c57,0x2c27}, +{0x0427,0x0427,0x0447,0x0427},{0x10427,0x10427,0x1044f,0x10427},{0x2c28,0x2c28,0x2c58,0x2c28},{0x10428,0x10400,0x10428,0x10400}, +{0x0428,0x0428,0x0448,0x0428},{0x10429,0x10401,0x10429,0x10401},{0x0429,0x0429,0x0449,0x0429},{0x2c29,0x2c29,0x2c59,0x2c29}, +{0x2c2a,0x2c2a,0x2c5a,0x2c2a},{0x042a,0x042a,0x044a,0x042a},{0x1042a,0x10402,0x1042a,0x10402},{0x1042b,0x10403,0x1042b,0x10403}, +{0x042b,0x042b,0x044b,0x042b},{0x2c2b,0x2c2b,0x2c5b,0x2c2b},{0x2c2c,0x2c2c,0x2c5c,0x2c2c},{0x1042c,0x10404,0x1042c,0x10404}, +{0x042c,0x042c,0x044c,0x042c},{0x2c2d,0x2c2d,0x2c5d,0x2c2d},{0x042d,0x042d,0x044d,0x042d},{0x1042d,0x10405,0x1042d,0x10405}, +{0x2c2e,0x2c2e,0x2c5e,0x2c2e},{0x042e,0x042e,0x044e,0x042e},{0x1042e,0x10406,0x1042e,0x10406},{0x1042f,0x10407,0x1042f,0x10407}, +{0x042f,0x042f,0x044f,0x042f},{0x10430,0x10408,0x10430,0x10408},{0x2c30,0x2c00,0x2c30,0x2c00},{0x0430,0x0410,0x0430,0x0410}, {0x10431,0x10409,0x10431,0x10409},{0x2c31,0x2c01,0x2c31,0x2c01},{0x0431,0x0411,0x0431,0x0411},{0x0432,0x0412,0x0432,0x0412}, -{0x10432,0x1040a,0x10432,0x1040a},{0x2c32,0x2c02,0x2c32,0x2c02},{0x0433,0x0413,0x0433,0x0413},{0x10433,0x1040b,0x10433,0x1040b}, -{0x2c33,0x2c03,0x2c33,0x2c03},{0x10434,0x1040c,0x10434,0x1040c},{0x0434,0x0414,0x0434,0x0414},{0x2c34,0x2c04,0x2c34,0x2c04}, +{0x10432,0x1040a,0x10432,0x1040a},{0x2c32,0x2c02,0x2c32,0x2c02},{0x0433,0x0413,0x0433,0x0413},{0x2c33,0x2c03,0x2c33,0x2c03}, +{0x10433,0x1040b,0x10433,0x1040b},{0x0434,0x0414,0x0434,0x0414},{0x10434,0x1040c,0x10434,0x1040c},{0x2c34,0x2c04,0x2c34,0x2c04}, {0x10435,0x1040d,0x10435,0x1040d},{0x2c35,0x2c05,0x2c35,0x2c05},{0x0435,0x0415,0x0435,0x0415},{0x2c36,0x2c06,0x2c36,0x2c06}, -{0x0436,0x0416,0x0436,0x0416},{0x10436,0x1040e,0x10436,0x1040e},{0x2c37,0x2c07,0x2c37,0x2c07},{0x10437,0x1040f,0x10437,0x1040f}, +{0x10436,0x1040e,0x10436,0x1040e},{0x0436,0x0416,0x0436,0x0416},{0x10437,0x1040f,0x10437,0x1040f},{0x2c37,0x2c07,0x2c37,0x2c07}, {0x0437,0x0417,0x0437,0x0417},{0x2c38,0x2c08,0x2c38,0x2c08},{0x10438,0x10410,0x10438,0x10410},{0x0438,0x0418,0x0438,0x0418}, -{0x2c39,0x2c09,0x2c39,0x2c09},{0x0439,0x0419,0x0439,0x0419},{0x10439,0x10411,0x10439,0x10411},{0x1043a,0x10412,0x1043a,0x10412}, -{0x2c3a,0x2c0a,0x2c3a,0x2c0a},{0x043a,0x041a,0x043a,0x041a},{0x2c3b,0x2c0b,0x2c3b,0x2c0b},{0x1043b,0x10413,0x1043b,0x10413}, -{0x043b,0x041b,0x043b,0x041b},{0x043c,0x041c,0x043c,0x041c},{0x2c3c,0x2c0c,0x2c3c,0x2c0c},{0x1043c,0x10414,0x1043c,0x10414}, -{0x043d,0x041d,0x043d,0x041d},{0x2c3d,0x2c0d,0x2c3d,0x2c0d},{0x1043d,0x10415,0x1043d,0x10415},{0x043e,0x041e,0x043e,0x041e}, -{0x2c3e,0x2c0e,0x2c3e,0x2c0e},{0x1043e,0x10416,0x1043e,0x10416},{0x2c3f,0x2c0f,0x2c3f,0x2c0f},{0x043f,0x041f,0x043f,0x041f}, -{0x1043f,0x10417,0x1043f,0x10417},{0x10440,0x10418,0x10440,0x10418},{0x0440,0x0420,0x0440,0x0420},{0x2c40,0x2c10,0x2c40,0x2c10}, -{0x10441,0x10419,0x10441,0x10419},{0x2c41,0x2c11,0x2c41,0x2c11},{0x0441,0x0421,0x0441,0x0421},{0x2c42,0x2c12,0x2c42,0x2c12}, -{0x10442,0x1041a,0x10442,0x1041a},{0x0442,0x0422,0x0442,0x0422},{0x0443,0x0423,0x0443,0x0423},{0x2c43,0x2c13,0x2c43,0x2c13}, -{0x10443,0x1041b,0x10443,0x1041b},{0x0444,0x0424,0x0444,0x0424},{0x2c44,0x2c14,0x2c44,0x2c14},{0x10444,0x1041c,0x10444,0x1041c}, -{0x2c45,0x2c15,0x2c45,0x2c15},{0x10445,0x1041d,0x10445,0x1041d},{0x0445,0x0425,0x0445,0x0425},{0x10446,0x1041e,0x10446,0x1041e}, -{0x0446,0x0426,0x0446,0x0426},{0x2c46,0x2c16,0x2c46,0x2c16},{0x2c47,0x2c17,0x2c47,0x2c17},{0x10447,0x1041f,0x10447,0x1041f}, -{0x0447,0x0427,0x0447,0x0427},{0x0448,0x0428,0x0448,0x0428},{0x2c48,0x2c18,0x2c48,0x2c18},{0x10448,0x10420,0x10448,0x10420}, -{0x2c49,0x2c19,0x2c49,0x2c19},{0x0449,0x0429,0x0449,0x0429},{0x10449,0x10421,0x10449,0x10421},{0x2c4a,0x2c1a,0x2c4a,0x2c1a}, -{0x044a,0x042a,0x044a,0x042a},{0x1044a,0x10422,0x1044a,0x10422},{0x1044b,0x10423,0x1044b,0x10423},{0x044b,0x042b,0x044b,0x042b}, -{0x2c4b,0x2c1b,0x2c4b,0x2c1b},{0x1044c,0x10424,0x1044c,0x10424},{0x044c,0x042c,0x044c,0x042c},{0x2c4c,0x2c1c,0x2c4c,0x2c1c}, -{0x2c4d,0x2c1d,0x2c4d,0x2c1d},{0x1044d,0x10425,0x1044d,0x10425},{0x044d,0x042d,0x044d,0x042d},{0x2c4e,0x2c1e,0x2c4e,0x2c1e}, -{0x044e,0x042e,0x044e,0x042e},{0x1044e,0x10426,0x1044e,0x10426},{0x1044f,0x10427,0x1044f,0x10427},{0x044f,0x042f,0x044f,0x042f}, -{0x2c4f,0x2c1f,0x2c4f,0x2c1f},{0x0450,0x0400,0x0450,0x0400},{0x2c50,0x2c20,0x2c50,0x2c20},{0x2c51,0x2c21,0x2c51,0x2c21}, -{0x0451,0x0401,0x0451,0x0401},{0x0452,0x0402,0x0452,0x0402},{0x2c52,0x2c22,0x2c52,0x2c22},{0x2c53,0x2c23,0x2c53,0x2c23}, -{0x0453,0x0403,0x0453,0x0403},{0x2c54,0x2c24,0x2c54,0x2c24},{0x0454,0x0404,0x0454,0x0404},{0x0455,0x0405,0x0455,0x0405}, -{0x2c55,0x2c25,0x2c55,0x2c25},{0x0456,0x0406,0x0456,0x0406},{0x2c56,0x2c26,0x2c56,0x2c26},{0x0457,0x0407,0x0457,0x0407}, -{0x2c57,0x2c27,0x2c57,0x2c27},{0x2c58,0x2c28,0x2c58,0x2c28},{0x0458,0x0408,0x0458,0x0408},{0x0459,0x0409,0x0459,0x0409}, -{0x2c59,0x2c29,0x2c59,0x2c29},{0x2c5a,0x2c2a,0x2c5a,0x2c2a},{0x045a,0x040a,0x045a,0x040a},{0x045b,0x040b,0x045b,0x040b}, -{0x2c5b,0x2c2b,0x2c5b,0x2c2b},{0x2c5c,0x2c2c,0x2c5c,0x2c2c},{0x045c,0x040c,0x045c,0x040c},{0x2c5d,0x2c2d,0x2c5d,0x2c2d}, -{0x045d,0x040d,0x045d,0x040d},{0x045e,0x040e,0x045e,0x040e},{0x2c5e,0x2c2e,0x2c5e,0x2c2e},{0x045f,0x040f,0x045f,0x040f}, -{0x2c60,0x2c60,0x2c61,0x2c60},{0x0460,0x0460,0x0461,0x0460},{0x2c61,0x2c60,0x2c61,0x2c60},{0x0461,0x0460,0x0461,0x0460}, -{0x2c62,0x2c62,0x026b,0x2c62},{0x0462,0x0462,0x0463,0x0462},{0x0463,0x0462,0x0463,0x0462},{0x2c63,0x2c63,0x1d7d,0x2c63}, +{0x0439,0x0419,0x0439,0x0419},{0x2c39,0x2c09,0x2c39,0x2c09},{0x10439,0x10411,0x10439,0x10411},{0x043a,0x041a,0x043a,0x041a}, +{0x2c3a,0x2c0a,0x2c3a,0x2c0a},{0x1043a,0x10412,0x1043a,0x10412},{0x043b,0x041b,0x043b,0x041b},{0x1043b,0x10413,0x1043b,0x10413}, +{0x2c3b,0x2c0b,0x2c3b,0x2c0b},{0x1043c,0x10414,0x1043c,0x10414},{0x2c3c,0x2c0c,0x2c3c,0x2c0c},{0x043c,0x041c,0x043c,0x041c}, +{0x2c3d,0x2c0d,0x2c3d,0x2c0d},{0x1043d,0x10415,0x1043d,0x10415},{0x043d,0x041d,0x043d,0x041d},{0x1043e,0x10416,0x1043e,0x10416}, +{0x2c3e,0x2c0e,0x2c3e,0x2c0e},{0x043e,0x041e,0x043e,0x041e},{0x043f,0x041f,0x043f,0x041f},{0x1043f,0x10417,0x1043f,0x10417}, +{0x2c3f,0x2c0f,0x2c3f,0x2c0f},{0x0440,0x0420,0x0440,0x0420},{0x2c40,0x2c10,0x2c40,0x2c10},{0x10440,0x10418,0x10440,0x10418}, +{0x0441,0x0421,0x0441,0x0421},{0x10441,0x10419,0x10441,0x10419},{0x2c41,0x2c11,0x2c41,0x2c11},{0x0442,0x0422,0x0442,0x0422}, +{0x2c42,0x2c12,0x2c42,0x2c12},{0x10442,0x1041a,0x10442,0x1041a},{0x0443,0x0423,0x0443,0x0423},{0x10443,0x1041b,0x10443,0x1041b}, +{0x2c43,0x2c13,0x2c43,0x2c13},{0x2c44,0x2c14,0x2c44,0x2c14},{0x10444,0x1041c,0x10444,0x1041c},{0x0444,0x0424,0x0444,0x0424}, +{0x0445,0x0425,0x0445,0x0425},{0x10445,0x1041d,0x10445,0x1041d},{0x2c45,0x2c15,0x2c45,0x2c15},{0x10446,0x1041e,0x10446,0x1041e}, +{0x0446,0x0426,0x0446,0x0426},{0x2c46,0x2c16,0x2c46,0x2c16},{0x2c47,0x2c17,0x2c47,0x2c17},{0x0447,0x0427,0x0447,0x0427}, +{0x10447,0x1041f,0x10447,0x1041f},{0x10448,0x10420,0x10448,0x10420},{0x0448,0x0428,0x0448,0x0428},{0x2c48,0x2c18,0x2c48,0x2c18}, +{0x0449,0x0429,0x0449,0x0429},{0x2c49,0x2c19,0x2c49,0x2c19},{0x10449,0x10421,0x10449,0x10421},{0x1044a,0x10422,0x1044a,0x10422}, +{0x044a,0x042a,0x044a,0x042a},{0x2c4a,0x2c1a,0x2c4a,0x2c1a},{0x1044b,0x10423,0x1044b,0x10423},{0x044b,0x042b,0x044b,0x042b}, +{0x2c4b,0x2c1b,0x2c4b,0x2c1b},{0x044c,0x042c,0x044c,0x042c},{0x2c4c,0x2c1c,0x2c4c,0x2c1c},{0x1044c,0x10424,0x1044c,0x10424}, +{0x2c4d,0x2c1d,0x2c4d,0x2c1d},{0x044d,0x042d,0x044d,0x042d},{0x1044d,0x10425,0x1044d,0x10425},{0x044e,0x042e,0x044e,0x042e}, +{0x2c4e,0x2c1e,0x2c4e,0x2c1e},{0x1044e,0x10426,0x1044e,0x10426},{0x2c4f,0x2c1f,0x2c4f,0x2c1f},{0x044f,0x042f,0x044f,0x042f}, +{0x1044f,0x10427,0x1044f,0x10427},{0x0450,0x0400,0x0450,0x0400},{0x2c50,0x2c20,0x2c50,0x2c20},{0x0451,0x0401,0x0451,0x0401}, +{0x2c51,0x2c21,0x2c51,0x2c21},{0x2c52,0x2c22,0x2c52,0x2c22},{0x0452,0x0402,0x0452,0x0402},{0x2c53,0x2c23,0x2c53,0x2c23}, +{0x0453,0x0403,0x0453,0x0403},{0x2c54,0x2c24,0x2c54,0x2c24},{0x0454,0x0404,0x0454,0x0404},{0x2c55,0x2c25,0x2c55,0x2c25}, +{0x0455,0x0405,0x0455,0x0405},{0x0456,0x0406,0x0456,0x0406},{0x2c56,0x2c26,0x2c56,0x2c26},{0x2c57,0x2c27,0x2c57,0x2c27}, +{0x0457,0x0407,0x0457,0x0407},{0x0458,0x0408,0x0458,0x0408},{0x2c58,0x2c28,0x2c58,0x2c28},{0x2c59,0x2c29,0x2c59,0x2c29}, +{0x0459,0x0409,0x0459,0x0409},{0x2c5a,0x2c2a,0x2c5a,0x2c2a},{0x045a,0x040a,0x045a,0x040a},{0x045b,0x040b,0x045b,0x040b}, +{0x2c5b,0x2c2b,0x2c5b,0x2c2b},{0x2c5c,0x2c2c,0x2c5c,0x2c2c},{0x045c,0x040c,0x045c,0x040c},{0x045d,0x040d,0x045d,0x040d}, +{0x2c5d,0x2c2d,0x2c5d,0x2c2d},{0x2c5e,0x2c2e,0x2c5e,0x2c2e},{0x045e,0x040e,0x045e,0x040e},{0x045f,0x040f,0x045f,0x040f}, +{0x0460,0x0460,0x0461,0x0460},{0x2c60,0x2c60,0x2c61,0x2c60},{0x0461,0x0460,0x0461,0x0460},{0x2c61,0x2c60,0x2c61,0x2c60}, +{0x0462,0x0462,0x0463,0x0462},{0x2c62,0x2c62,0x026b,0x2c62},{0x2c63,0x2c63,0x1d7d,0x2c63},{0x0463,0x0462,0x0463,0x0462}, {0x2c64,0x2c64,0x027d,0x2c64},{0x0464,0x0464,0x0465,0x0464},{0x0465,0x0464,0x0465,0x0464},{0x2c65,0x023a,0x2c65,0x023a}, -{0x2c66,0x023e,0x2c66,0x023e},{0x0466,0x0466,0x0467,0x0466},{0x0467,0x0466,0x0467,0x0466},{0x2c67,0x2c67,0x2c68,0x2c67}, -{0x2c68,0x2c67,0x2c68,0x2c67},{0x0468,0x0468,0x0469,0x0468},{0x0469,0x0468,0x0469,0x0468},{0x2c69,0x2c69,0x2c6a,0x2c69}, +{0x2c66,0x023e,0x2c66,0x023e},{0x0466,0x0466,0x0467,0x0466},{0x2c67,0x2c67,0x2c68,0x2c67},{0x0467,0x0466,0x0467,0x0466}, +{0x2c68,0x2c67,0x2c68,0x2c67},{0x0468,0x0468,0x0469,0x0468},{0x2c69,0x2c69,0x2c6a,0x2c69},{0x0469,0x0468,0x0469,0x0468}, {0x2c6a,0x2c69,0x2c6a,0x2c69},{0x046a,0x046a,0x046b,0x046a},{0x046b,0x046a,0x046b,0x046a},{0x2c6b,0x2c6b,0x2c6c,0x2c6b}, -{0x2c6c,0x2c6b,0x2c6c,0x2c6b},{0x046c,0x046c,0x046d,0x046c},{0x2c6d,0x2c6d,0x0251,0x2c6d},{0x046d,0x046c,0x046d,0x046c}, -{0x2c6e,0x2c6e,0x0271,0x2c6e},{0x046e,0x046e,0x046f,0x046e},{0x046f,0x046e,0x046f,0x046e},{0x2c6f,0x2c6f,0x0250,0x2c6f}, -{0x2c70,0x2c70,0x0252,0x2c70},{0x0470,0x0470,0x0471,0x0470},{0x0471,0x0470,0x0471,0x0470},{0x2c72,0x2c72,0x2c73,0x2c72}, -{0x0472,0x0472,0x0473,0x0472},{0x2c73,0x2c72,0x2c73,0x2c72},{0x0473,0x0472,0x0473,0x0472},{0x0474,0x0474,0x0475,0x0474}, -{0x2c75,0x2c75,0x2c76,0x2c75},{0x0475,0x0474,0x0475,0x0474},{0x0476,0x0476,0x0477,0x0476},{0x2c76,0x2c75,0x2c76,0x2c75}, +{0x2c6c,0x2c6b,0x2c6c,0x2c6b},{0x046c,0x046c,0x046d,0x046c},{0x046d,0x046c,0x046d,0x046c},{0x2c6d,0x2c6d,0x0251,0x2c6d}, +{0x046e,0x046e,0x046f,0x046e},{0x2c6e,0x2c6e,0x0271,0x2c6e},{0x2c6f,0x2c6f,0x0250,0x2c6f},{0x046f,0x046e,0x046f,0x046e}, +{0x0470,0x0470,0x0471,0x0470},{0x2c70,0x2c70,0x0252,0x2c70},{0x0471,0x0470,0x0471,0x0470},{0x0472,0x0472,0x0473,0x0472}, +{0x2c72,0x2c72,0x2c73,0x2c72},{0x0473,0x0472,0x0473,0x0472},{0x2c73,0x2c72,0x2c73,0x2c72},{0x0474,0x0474,0x0475,0x0474}, +{0x0475,0x0474,0x0475,0x0474},{0x2c75,0x2c75,0x2c76,0x2c75},{0x2c76,0x2c75,0x2c76,0x2c75},{0x0476,0x0476,0x0477,0x0476}, {0x0477,0x0476,0x0477,0x0476},{0x0478,0x0478,0x0479,0x0478},{0x0479,0x0478,0x0479,0x0478},{0x047a,0x047a,0x047b,0x047a}, -{0x047b,0x047a,0x047b,0x047a},{0x047c,0x047c,0x047d,0x047c},{0x047d,0x047c,0x047d,0x047c},{0x2c7e,0x2c7e,0x023f,0x2c7e}, -{0x047e,0x047e,0x047f,0x047e},{0x047f,0x047e,0x047f,0x047e},{0x2c7f,0x2c7f,0x0240,0x2c7f},{0x10c80,0x10c80,0x10cc0,0x10c80}, -{0x2c80,0x2c80,0x2c81,0x2c80},{0x0480,0x0480,0x0481,0x0480},{0x2c81,0x2c80,0x2c81,0x2c80},{0x0481,0x0480,0x0481,0x0480}, -{0x10c81,0x10c81,0x10cc1,0x10c81},{0x10c82,0x10c82,0x10cc2,0x10c82},{0x2c82,0x2c82,0x2c83,0x2c82},{0x2c83,0x2c82,0x2c83,0x2c82}, -{0x10c83,0x10c83,0x10cc3,0x10c83},{0x2c84,0x2c84,0x2c85,0x2c84},{0x10c84,0x10c84,0x10cc4,0x10c84},{0x2c85,0x2c84,0x2c85,0x2c84}, -{0x10c85,0x10c85,0x10cc5,0x10c85},{0x10c86,0x10c86,0x10cc6,0x10c86},{0x2c86,0x2c86,0x2c87,0x2c86},{0x2c87,0x2c86,0x2c87,0x2c86}, -{0x10c87,0x10c87,0x10cc7,0x10c87},{0x10c88,0x10c88,0x10cc8,0x10c88},{0x2c88,0x2c88,0x2c89,0x2c88},{0x2c89,0x2c88,0x2c89,0x2c88}, -{0x10c89,0x10c89,0x10cc9,0x10c89},{0x048a,0x048a,0x048b,0x048a},{0x2c8a,0x2c8a,0x2c8b,0x2c8a},{0x10c8a,0x10c8a,0x10cca,0x10c8a}, -{0x10c8b,0x10c8b,0x10ccb,0x10c8b},{0x048b,0x048a,0x048b,0x048a},{0x2c8b,0x2c8a,0x2c8b,0x2c8a},{0x048c,0x048c,0x048d,0x048c}, -{0x2c8c,0x2c8c,0x2c8d,0x2c8c},{0x10c8c,0x10c8c,0x10ccc,0x10c8c},{0x2c8d,0x2c8c,0x2c8d,0x2c8c},{0x10c8d,0x10c8d,0x10ccd,0x10c8d}, -{0x048d,0x048c,0x048d,0x048c},{0x048e,0x048e,0x048f,0x048e},{0x2c8e,0x2c8e,0x2c8f,0x2c8e},{0x10c8e,0x10c8e,0x10cce,0x10c8e}, -{0x2c8f,0x2c8e,0x2c8f,0x2c8e},{0x10c8f,0x10c8f,0x10ccf,0x10c8f},{0x048f,0x048e,0x048f,0x048e},{0x10c90,0x10c90,0x10cd0,0x10c90}, -{0x0490,0x0490,0x0491,0x0490},{0x2c90,0x2c90,0x2c91,0x2c90},{0x0491,0x0490,0x0491,0x0490},{0x2c91,0x2c90,0x2c91,0x2c90}, -{0x10c91,0x10c91,0x10cd1,0x10c91},{0x0492,0x0492,0x0493,0x0492},{0x2c92,0x2c92,0x2c93,0x2c92},{0x10c92,0x10c92,0x10cd2,0x10c92}, -{0x10c93,0x10c93,0x10cd3,0x10c93},{0x2c93,0x2c92,0x2c93,0x2c92},{0x0493,0x0492,0x0493,0x0492},{0x10c94,0x10c94,0x10cd4,0x10c94}, -{0x2c94,0x2c94,0x2c95,0x2c94},{0x0494,0x0494,0x0495,0x0494},{0x0495,0x0494,0x0495,0x0494},{0x2c95,0x2c94,0x2c95,0x2c94}, -{0x10c95,0x10c95,0x10cd5,0x10c95},{0x0496,0x0496,0x0497,0x0496},{0x10c96,0x10c96,0x10cd6,0x10c96},{0x2c96,0x2c96,0x2c97,0x2c96}, -{0x0497,0x0496,0x0497,0x0496},{0x2c97,0x2c96,0x2c97,0x2c96},{0x10c97,0x10c97,0x10cd7,0x10c97},{0x0498,0x0498,0x0499,0x0498}, -{0x10c98,0x10c98,0x10cd8,0x10c98},{0x2c98,0x2c98,0x2c99,0x2c98},{0x2c99,0x2c98,0x2c99,0x2c98},{0x10c99,0x10c99,0x10cd9,0x10c99}, -{0x0499,0x0498,0x0499,0x0498},{0x049a,0x049a,0x049b,0x049a},{0x2c9a,0x2c9a,0x2c9b,0x2c9a},{0x10c9a,0x10c9a,0x10cda,0x10c9a}, -{0x10c9b,0x10c9b,0x10cdb,0x10c9b},{0x049b,0x049a,0x049b,0x049a},{0x2c9b,0x2c9a,0x2c9b,0x2c9a},{0x049c,0x049c,0x049d,0x049c}, -{0x10c9c,0x10c9c,0x10cdc,0x10c9c},{0x2c9c,0x2c9c,0x2c9d,0x2c9c},{0x2c9d,0x2c9c,0x2c9d,0x2c9c},{0x049d,0x049c,0x049d,0x049c}, -{0x10c9d,0x10c9d,0x10cdd,0x10c9d},{0x049e,0x049e,0x049f,0x049e},{0x2c9e,0x2c9e,0x2c9f,0x2c9e},{0x10c9e,0x10c9e,0x10cde,0x10c9e}, -{0x049f,0x049e,0x049f,0x049e},{0x2c9f,0x2c9e,0x2c9f,0x2c9e},{0x10c9f,0x10c9f,0x10cdf,0x10c9f},{0x04a0,0x04a0,0x04a1,0x04a0}, -{0x10ca0,0x10ca0,0x10ce0,0x10ca0},{0x2ca0,0x2ca0,0x2ca1,0x2ca0},{0x2ca1,0x2ca0,0x2ca1,0x2ca0},{0x10ca1,0x10ca1,0x10ce1,0x10ca1}, -{0x04a1,0x04a0,0x04a1,0x04a0},{0x2ca2,0x2ca2,0x2ca3,0x2ca2},{0x10ca2,0x10ca2,0x10ce2,0x10ca2},{0x04a2,0x04a2,0x04a3,0x04a2}, -{0x04a3,0x04a2,0x04a3,0x04a2},{0x10ca3,0x10ca3,0x10ce3,0x10ca3},{0x2ca3,0x2ca2,0x2ca3,0x2ca2},{0x10ca4,0x10ca4,0x10ce4,0x10ca4}, -{0x04a4,0x04a4,0x04a5,0x04a4},{0x2ca4,0x2ca4,0x2ca5,0x2ca4},{0x10ca5,0x10ca5,0x10ce5,0x10ca5},{0x2ca5,0x2ca4,0x2ca5,0x2ca4}, -{0x04a5,0x04a4,0x04a5,0x04a4},{0x10ca6,0x10ca6,0x10ce6,0x10ca6},{0x2ca6,0x2ca6,0x2ca7,0x2ca6},{0x04a6,0x04a6,0x04a7,0x04a6}, -{0x10ca7,0x10ca7,0x10ce7,0x10ca7},{0x2ca7,0x2ca6,0x2ca7,0x2ca6},{0x04a7,0x04a6,0x04a7,0x04a6},{0x04a8,0x04a8,0x04a9,0x04a8}, -{0x2ca8,0x2ca8,0x2ca9,0x2ca8},{0x10ca8,0x10ca8,0x10ce8,0x10ca8},{0x04a9,0x04a8,0x04a9,0x04a8},{0x10ca9,0x10ca9,0x10ce9,0x10ca9}, -{0x2ca9,0x2ca8,0x2ca9,0x2ca8},{0x2caa,0x2caa,0x2cab,0x2caa},{0x10caa,0x10caa,0x10cea,0x10caa},{0x04aa,0x04aa,0x04ab,0x04aa}, -{0x04ab,0x04aa,0x04ab,0x04aa},{0x2cab,0x2caa,0x2cab,0x2caa},{0x10cab,0x10cab,0x10ceb,0x10cab},{0x10cac,0x10cac,0x10cec,0x10cac}, -{0x04ac,0x04ac,0x04ad,0x04ac},{0x2cac,0x2cac,0x2cad,0x2cac},{0x04ad,0x04ac,0x04ad,0x04ac},{0x2cad,0x2cac,0x2cad,0x2cac}, -{0x10cad,0x10cad,0x10ced,0x10cad},{0x2cae,0x2cae,0x2caf,0x2cae},{0x10cae,0x10cae,0x10cee,0x10cae},{0x04ae,0x04ae,0x04af,0x04ae}, -{0x04af,0x04ae,0x04af,0x04ae},{0x2caf,0x2cae,0x2caf,0x2cae},{0x10caf,0x10caf,0x10cef,0x10caf},{0x2cb0,0x2cb0,0x2cb1,0x2cb0}, -{0x04b0,0x04b0,0x04b1,0x04b0},{0x10cb0,0x10cb0,0x10cf0,0x10cb0},{0x04b1,0x04b0,0x04b1,0x04b0},{0x2cb1,0x2cb0,0x2cb1,0x2cb0}, -{0x10cb1,0x10cb1,0x10cf1,0x10cb1},{0x2cb2,0x2cb2,0x2cb3,0x2cb2},{0x10cb2,0x10cb2,0x10cf2,0x10cb2},{0x04b2,0x04b2,0x04b3,0x04b2}, -{0x04b3,0x04b2,0x04b3,0x04b2},{0x2cb3,0x2cb2,0x2cb3,0x2cb2},{0x04b4,0x04b4,0x04b5,0x04b4},{0x2cb4,0x2cb4,0x2cb5,0x2cb4}, -{0x2cb5,0x2cb4,0x2cb5,0x2cb4},{0x04b5,0x04b4,0x04b5,0x04b4},{0x04b6,0x04b6,0x04b7,0x04b6},{0x2cb6,0x2cb6,0x2cb7,0x2cb6}, -{0x24b6,0x24b6,0x24d0,0x24b6},{0x04b7,0x04b6,0x04b7,0x04b6},{0x2cb7,0x2cb6,0x2cb7,0x2cb6},{0x24b7,0x24b7,0x24d1,0x24b7}, -{0x04b8,0x04b8,0x04b9,0x04b8},{0x2cb8,0x2cb8,0x2cb9,0x2cb8},{0x24b8,0x24b8,0x24d2,0x24b8},{0x24b9,0x24b9,0x24d3,0x24b9}, -{0x04b9,0x04b8,0x04b9,0x04b8},{0x2cb9,0x2cb8,0x2cb9,0x2cb8},{0x04ba,0x04ba,0x04bb,0x04ba},{0x24ba,0x24ba,0x24d4,0x24ba}, -{0x2cba,0x2cba,0x2cbb,0x2cba},{0x24bb,0x24bb,0x24d5,0x24bb},{0x2cbb,0x2cba,0x2cbb,0x2cba},{0x04bb,0x04ba,0x04bb,0x04ba}, -{0x04bc,0x04bc,0x04bd,0x04bc},{0x2cbc,0x2cbc,0x2cbd,0x2cbc},{0x24bc,0x24bc,0x24d6,0x24bc},{0x04bd,0x04bc,0x04bd,0x04bc}, -{0x24bd,0x24bd,0x24d7,0x24bd},{0x2cbd,0x2cbc,0x2cbd,0x2cbc},{0x2cbe,0x2cbe,0x2cbf,0x2cbe},{0x04be,0x04be,0x04bf,0x04be}, -{0x24be,0x24be,0x24d8,0x24be},{0x2cbf,0x2cbe,0x2cbf,0x2cbe},{0x04bf,0x04be,0x04bf,0x04be},{0x24bf,0x24bf,0x24d9,0x24bf}, -{0x10cc0,0x10c80,0x10cc0,0x10c80},{0x2cc0,0x2cc0,0x2cc1,0x2cc0},{0x24c0,0x24c0,0x24da,0x24c0},{0x04c0,0x04c0,0x04cf,0x04c0}, -{0x10cc1,0x10c81,0x10cc1,0x10c81},{0x04c1,0x04c1,0x04c2,0x04c1},{0x24c1,0x24c1,0x24db,0x24c1},{0x2cc1,0x2cc0,0x2cc1,0x2cc0}, -{0x2cc2,0x2cc2,0x2cc3,0x2cc2},{0x10cc2,0x10c82,0x10cc2,0x10c82},{0x24c2,0x24c2,0x24dc,0x24c2},{0x04c2,0x04c1,0x04c2,0x04c1}, -{0x24c3,0x24c3,0x24dd,0x24c3},{0x2cc3,0x2cc2,0x2cc3,0x2cc2},{0x04c3,0x04c3,0x04c4,0x04c3},{0x10cc3,0x10c83,0x10cc3,0x10c83}, -{0x2cc4,0x2cc4,0x2cc5,0x2cc4},{0x04c4,0x04c3,0x04c4,0x04c3},{0x24c4,0x24c4,0x24de,0x24c4},{0x10cc4,0x10c84,0x10cc4,0x10c84}, -{0x04c5,0x04c5,0x04c6,0x04c5},{0x10cc5,0x10c85,0x10cc5,0x10c85},{0x24c5,0x24c5,0x24df,0x24c5},{0x2cc5,0x2cc4,0x2cc5,0x2cc4}, -{0x24c6,0x24c6,0x24e0,0x24c6},{0x2cc6,0x2cc6,0x2cc7,0x2cc6},{0x04c6,0x04c5,0x04c6,0x04c5},{0x10cc6,0x10c86,0x10cc6,0x10c86}, -{0x04c7,0x04c7,0x04c8,0x04c7},{0x24c7,0x24c7,0x24e1,0x24c7},{0x10cc7,0x10c87,0x10cc7,0x10c87},{0x2cc7,0x2cc6,0x2cc7,0x2cc6}, -{0x24c8,0x24c8,0x24e2,0x24c8},{0x04c8,0x04c7,0x04c8,0x04c7},{0x2cc8,0x2cc8,0x2cc9,0x2cc8},{0x10cc8,0x10c88,0x10cc8,0x10c88}, -{0x04c9,0x04c9,0x04ca,0x04c9},{0x2cc9,0x2cc8,0x2cc9,0x2cc8},{0x24c9,0x24c9,0x24e3,0x24c9},{0x10cc9,0x10c89,0x10cc9,0x10c89}, -{0x04ca,0x04c9,0x04ca,0x04c9},{0x10cca,0x10c8a,0x10cca,0x10c8a},{0x2cca,0x2cca,0x2ccb,0x2cca},{0x24ca,0x24ca,0x24e4,0x24ca}, -{0x10ccb,0x10c8b,0x10ccb,0x10c8b},{0x24cb,0x24cb,0x24e5,0x24cb},{0x2ccb,0x2cca,0x2ccb,0x2cca},{0x04cb,0x04cb,0x04cc,0x04cb}, -{0x10ccc,0x10c8c,0x10ccc,0x10c8c},{0x2ccc,0x2ccc,0x2ccd,0x2ccc},{0x04cc,0x04cb,0x04cc,0x04cb},{0x24cc,0x24cc,0x24e6,0x24cc}, -{0x24cd,0x24cd,0x24e7,0x24cd},{0x2ccd,0x2ccc,0x2ccd,0x2ccc},{0x04cd,0x04cd,0x04ce,0x04cd},{0x10ccd,0x10c8d,0x10ccd,0x10c8d}, -{0x24ce,0x24ce,0x24e8,0x24ce},{0x10cce,0x10c8e,0x10cce,0x10c8e},{0x2cce,0x2cce,0x2ccf,0x2cce},{0x04ce,0x04cd,0x04ce,0x04cd}, -{0x04cf,0x04c0,0x04cf,0x04c0},{0x2ccf,0x2cce,0x2ccf,0x2cce},{0x10ccf,0x10c8f,0x10ccf,0x10c8f},{0x24cf,0x24cf,0x24e9,0x24cf}, -{0x2cd0,0x2cd0,0x2cd1,0x2cd0},{0x10cd0,0x10c90,0x10cd0,0x10c90},{0x24d0,0x24b6,0x24d0,0x24b6},{0x04d0,0x04d0,0x04d1,0x04d0}, -{0x24d1,0x24b7,0x24d1,0x24b7},{0x2cd1,0x2cd0,0x2cd1,0x2cd0},{0x10cd1,0x10c91,0x10cd1,0x10c91},{0x04d1,0x04d0,0x04d1,0x04d0}, -{0x2cd2,0x2cd2,0x2cd3,0x2cd2},{0x04d2,0x04d2,0x04d3,0x04d2},{0x10cd2,0x10c92,0x10cd2,0x10c92},{0x24d2,0x24b8,0x24d2,0x24b8}, -{0x10cd3,0x10c93,0x10cd3,0x10c93},{0x04d3,0x04d2,0x04d3,0x04d2},{0x2cd3,0x2cd2,0x2cd3,0x2cd2},{0x24d3,0x24b9,0x24d3,0x24b9}, -{0x24d4,0x24ba,0x24d4,0x24ba},{0x04d4,0x04d4,0x04d5,0x04d4},{0x2cd4,0x2cd4,0x2cd5,0x2cd4},{0x10cd4,0x10c94,0x10cd4,0x10c94}, -{0x24d5,0x24bb,0x24d5,0x24bb},{0x2cd5,0x2cd4,0x2cd5,0x2cd4},{0x04d5,0x04d4,0x04d5,0x04d4},{0x10cd5,0x10c95,0x10cd5,0x10c95}, -{0x10cd6,0x10c96,0x10cd6,0x10c96},{0x04d6,0x04d6,0x04d7,0x04d6},{0x24d6,0x24bc,0x24d6,0x24bc},{0x2cd6,0x2cd6,0x2cd7,0x2cd6}, -{0x2cd7,0x2cd6,0x2cd7,0x2cd6},{0x10cd7,0x10c97,0x10cd7,0x10c97},{0x24d7,0x24bd,0x24d7,0x24bd},{0x04d7,0x04d6,0x04d7,0x04d6}, -{0x10cd8,0x10c98,0x10cd8,0x10c98},{0x24d8,0x24be,0x24d8,0x24be},{0x2cd8,0x2cd8,0x2cd9,0x2cd8},{0x04d8,0x04d8,0x04d9,0x04d8}, -{0x10cd9,0x10c99,0x10cd9,0x10c99},{0x04d9,0x04d8,0x04d9,0x04d8},{0x2cd9,0x2cd8,0x2cd9,0x2cd8},{0x24d9,0x24bf,0x24d9,0x24bf}, -{0x04da,0x04da,0x04db,0x04da},{0x10cda,0x10c9a,0x10cda,0x10c9a},{0x24da,0x24c0,0x24da,0x24c0},{0x2cda,0x2cda,0x2cdb,0x2cda}, -{0x04db,0x04da,0x04db,0x04da},{0x2cdb,0x2cda,0x2cdb,0x2cda},{0x10cdb,0x10c9b,0x10cdb,0x10c9b},{0x24db,0x24c1,0x24db,0x24c1}, -{0x2cdc,0x2cdc,0x2cdd,0x2cdc},{0x10cdc,0x10c9c,0x10cdc,0x10c9c},{0x24dc,0x24c2,0x24dc,0x24c2},{0x04dc,0x04dc,0x04dd,0x04dc}, -{0x10cdd,0x10c9d,0x10cdd,0x10c9d},{0x04dd,0x04dc,0x04dd,0x04dc},{0x24dd,0x24c3,0x24dd,0x24c3},{0x2cdd,0x2cdc,0x2cdd,0x2cdc}, -{0x04de,0x04de,0x04df,0x04de},{0x24de,0x24c4,0x24de,0x24c4},{0x2cde,0x2cde,0x2cdf,0x2cde},{0x10cde,0x10c9e,0x10cde,0x10c9e}, -{0x04df,0x04de,0x04df,0x04de},{0x2cdf,0x2cde,0x2cdf,0x2cde},{0x10cdf,0x10c9f,0x10cdf,0x10c9f},{0x24df,0x24c5,0x24df,0x24c5}, -{0x2ce0,0x2ce0,0x2ce1,0x2ce0},{0x24e0,0x24c6,0x24e0,0x24c6},{0x10ce0,0x10ca0,0x10ce0,0x10ca0},{0x04e0,0x04e0,0x04e1,0x04e0}, -{0x04e1,0x04e0,0x04e1,0x04e0},{0x24e1,0x24c7,0x24e1,0x24c7},{0x10ce1,0x10ca1,0x10ce1,0x10ca1},{0x2ce1,0x2ce0,0x2ce1,0x2ce0}, -{0x24e2,0x24c8,0x24e2,0x24c8},{0x2ce2,0x2ce2,0x2ce3,0x2ce2},{0x04e2,0x04e2,0x04e3,0x04e2},{0x10ce2,0x10ca2,0x10ce2,0x10ca2}, -{0x04e3,0x04e2,0x04e3,0x04e2},{0x10ce3,0x10ca3,0x10ce3,0x10ca3},{0x24e3,0x24c9,0x24e3,0x24c9},{0x2ce3,0x2ce2,0x2ce3,0x2ce2}, -{0x24e4,0x24ca,0x24e4,0x24ca},{0x04e4,0x04e4,0x04e5,0x04e4},{0x10ce4,0x10ca4,0x10ce4,0x10ca4},{0x24e5,0x24cb,0x24e5,0x24cb}, -{0x10ce5,0x10ca5,0x10ce5,0x10ca5},{0x04e5,0x04e4,0x04e5,0x04e4},{0x24e6,0x24cc,0x24e6,0x24cc},{0x04e6,0x04e6,0x04e7,0x04e6}, -{0x10ce6,0x10ca6,0x10ce6,0x10ca6},{0x04e7,0x04e6,0x04e7,0x04e6},{0x10ce7,0x10ca7,0x10ce7,0x10ca7},{0x24e7,0x24cd,0x24e7,0x24cd}, -{0x10ce8,0x10ca8,0x10ce8,0x10ca8},{0x24e8,0x24ce,0x24e8,0x24ce},{0x04e8,0x04e8,0x04e9,0x04e8},{0x04e9,0x04e8,0x04e9,0x04e8}, -{0x10ce9,0x10ca9,0x10ce9,0x10ca9},{0x24e9,0x24cf,0x24e9,0x24cf},{0x04ea,0x04ea,0x04eb,0x04ea},{0x10cea,0x10caa,0x10cea,0x10caa}, -{0x04eb,0x04ea,0x04eb,0x04ea},{0x2ceb,0x2ceb,0x2cec,0x2ceb},{0x10ceb,0x10cab,0x10ceb,0x10cab},{0x04ec,0x04ec,0x04ed,0x04ec}, -{0x2cec,0x2ceb,0x2cec,0x2ceb},{0x10cec,0x10cac,0x10cec,0x10cac},{0x04ed,0x04ec,0x04ed,0x04ec},{0x2ced,0x2ced,0x2cee,0x2ced}, -{0x10ced,0x10cad,0x10ced,0x10cad},{0x2cee,0x2ced,0x2cee,0x2ced},{0x04ee,0x04ee,0x04ef,0x04ee},{0x10cee,0x10cae,0x10cee,0x10cae}, -{0x04ef,0x04ee,0x04ef,0x04ee},{0x10cef,0x10caf,0x10cef,0x10caf},{0x04f0,0x04f0,0x04f1,0x04f0},{0x10cf0,0x10cb0,0x10cf0,0x10cb0}, -{0x04f1,0x04f0,0x04f1,0x04f0},{0x10cf1,0x10cb1,0x10cf1,0x10cb1},{0x04f2,0x04f2,0x04f3,0x04f2},{0x10cf2,0x10cb2,0x10cf2,0x10cb2}, -{0x2cf2,0x2cf2,0x2cf3,0x2cf2},{0x04f3,0x04f2,0x04f3,0x04f2},{0x2cf3,0x2cf2,0x2cf3,0x2cf2},{0x04f4,0x04f4,0x04f5,0x04f4}, -{0x04f5,0x04f4,0x04f5,0x04f4},{0x04f6,0x04f6,0x04f7,0x04f6},{0x04f7,0x04f6,0x04f7,0x04f6},{0x04f8,0x04f8,0x04f9,0x04f8}, -{0x04f9,0x04f8,0x04f9,0x04f8},{0x04fa,0x04fa,0x04fb,0x04fa},{0x04fb,0x04fa,0x04fb,0x04fa},{0x04fc,0x04fc,0x04fd,0x04fc}, -{0x04fd,0x04fc,0x04fd,0x04fc},{0x04fe,0x04fe,0x04ff,0x04fe},{0x04ff,0x04fe,0x04ff,0x04fe},{0x0500,0x0500,0x0501,0x0500}, -{0x2d00,0x10a0,0x2d00,0x10a0},{0x2d01,0x10a1,0x2d01,0x10a1},{0x0501,0x0500,0x0501,0x0500},{0x2d02,0x10a2,0x2d02,0x10a2}, -{0x0502,0x0502,0x0503,0x0502},{0x2d03,0x10a3,0x2d03,0x10a3},{0x0503,0x0502,0x0503,0x0502},{0x2d04,0x10a4,0x2d04,0x10a4}, -{0x0504,0x0504,0x0505,0x0504},{0x0505,0x0504,0x0505,0x0504},{0x2d05,0x10a5,0x2d05,0x10a5},{0x2d06,0x10a6,0x2d06,0x10a6}, -{0x0506,0x0506,0x0507,0x0506},{0x0507,0x0506,0x0507,0x0506},{0x2d07,0x10a7,0x2d07,0x10a7},{0x0508,0x0508,0x0509,0x0508}, -{0x2d08,0x10a8,0x2d08,0x10a8},{0x2d09,0x10a9,0x2d09,0x10a9},{0x0509,0x0508,0x0509,0x0508},{0x2d0a,0x10aa,0x2d0a,0x10aa}, -{0x050a,0x050a,0x050b,0x050a},{0x050b,0x050a,0x050b,0x050a},{0x2d0b,0x10ab,0x2d0b,0x10ab},{0x2d0c,0x10ac,0x2d0c,0x10ac}, -{0x050c,0x050c,0x050d,0x050c},{0x050d,0x050c,0x050d,0x050c},{0x2d0d,0x10ad,0x2d0d,0x10ad},{0x050e,0x050e,0x050f,0x050e}, -{0x2d0e,0x10ae,0x2d0e,0x10ae},{0x050f,0x050e,0x050f,0x050e},{0x2d0f,0x10af,0x2d0f,0x10af},{0x0510,0x0510,0x0511,0x0510}, -{0x2d10,0x10b0,0x2d10,0x10b0},{0x2d11,0x10b1,0x2d11,0x10b1},{0x0511,0x0510,0x0511,0x0510},{0x0512,0x0512,0x0513,0x0512}, -{0x2d12,0x10b2,0x2d12,0x10b2},{0x0513,0x0512,0x0513,0x0512},{0x2d13,0x10b3,0x2d13,0x10b3},{0x2d14,0x10b4,0x2d14,0x10b4}, -{0x0514,0x0514,0x0515,0x0514},{0x2d15,0x10b5,0x2d15,0x10b5},{0x0515,0x0514,0x0515,0x0514},{0x0516,0x0516,0x0517,0x0516}, -{0x2d16,0x10b6,0x2d16,0x10b6},{0x0517,0x0516,0x0517,0x0516},{0x2d17,0x10b7,0x2d17,0x10b7},{0x2d18,0x10b8,0x2d18,0x10b8}, -{0x0518,0x0518,0x0519,0x0518},{0x0519,0x0518,0x0519,0x0518},{0x2d19,0x10b9,0x2d19,0x10b9},{0x051a,0x051a,0x051b,0x051a}, -{0x2d1a,0x10ba,0x2d1a,0x10ba},{0x051b,0x051a,0x051b,0x051a},{0x2d1b,0x10bb,0x2d1b,0x10bb},{0x2d1c,0x10bc,0x2d1c,0x10bc}, -{0x051c,0x051c,0x051d,0x051c},{0x051d,0x051c,0x051d,0x051c},{0x2d1d,0x10bd,0x2d1d,0x10bd},{0x2d1e,0x10be,0x2d1e,0x10be}, -{0x051e,0x051e,0x051f,0x051e},{0x051f,0x051e,0x051f,0x051e},{0x2d1f,0x10bf,0x2d1f,0x10bf},{0x0520,0x0520,0x0521,0x0520}, -{0x2d20,0x10c0,0x2d20,0x10c0},{0x0521,0x0520,0x0521,0x0520},{0x2d21,0x10c1,0x2d21,0x10c1},{0x0522,0x0522,0x0523,0x0522}, -{0x2d22,0x10c2,0x2d22,0x10c2},{0x0523,0x0522,0x0523,0x0522},{0x2d23,0x10c3,0x2d23,0x10c3},{0x0524,0x0524,0x0525,0x0524}, -{0x2d24,0x10c4,0x2d24,0x10c4},{0x2d25,0x10c5,0x2d25,0x10c5},{0x0525,0x0524,0x0525,0x0524},{0x0526,0x0526,0x0527,0x0526}, -{0x2d27,0x10c7,0x2d27,0x10c7},{0x0527,0x0526,0x0527,0x0526},{0x0528,0x0528,0x0529,0x0528},{0x0529,0x0528,0x0529,0x0528}, -{0x052a,0x052a,0x052b,0x052a},{0x052b,0x052a,0x052b,0x052a},{0x052c,0x052c,0x052d,0x052c},{0x052d,0x052c,0x052d,0x052c}, -{0x2d2d,0x10cd,0x2d2d,0x10cd},{0x052e,0x052e,0x052f,0x052e},{0x052f,0x052e,0x052f,0x052e},{0x0531,0x0531,0x0561,0x0531}, -{0x0532,0x0532,0x0562,0x0532},{0x0533,0x0533,0x0563,0x0533},{0x0534,0x0534,0x0564,0x0534},{0x0535,0x0535,0x0565,0x0535}, -{0x0536,0x0536,0x0566,0x0536},{0x0537,0x0537,0x0567,0x0537},{0x0538,0x0538,0x0568,0x0538},{0x0539,0x0539,0x0569,0x0539}, -{0x053a,0x053a,0x056a,0x053a},{0x053b,0x053b,0x056b,0x053b},{0x053c,0x053c,0x056c,0x053c},{0x053d,0x053d,0x056d,0x053d}, -{0x053e,0x053e,0x056e,0x053e},{0x053f,0x053f,0x056f,0x053f},{0x0540,0x0540,0x0570,0x0540},{0x0541,0x0541,0x0571,0x0541}, -{0x0542,0x0542,0x0572,0x0542},{0x0543,0x0543,0x0573,0x0543},{0x0544,0x0544,0x0574,0x0544},{0x0545,0x0545,0x0575,0x0545}, -{0x0546,0x0546,0x0576,0x0546},{0x0547,0x0547,0x0577,0x0547},{0x0548,0x0548,0x0578,0x0548},{0x0549,0x0549,0x0579,0x0549}, -{0x054a,0x054a,0x057a,0x054a},{0x054b,0x054b,0x057b,0x054b},{0x054c,0x054c,0x057c,0x054c},{0x054d,0x054d,0x057d,0x054d}, -{0x054e,0x054e,0x057e,0x054e},{0x054f,0x054f,0x057f,0x054f},{0x0550,0x0550,0x0580,0x0550},{0x0551,0x0551,0x0581,0x0551}, -{0x0552,0x0552,0x0582,0x0552},{0x0553,0x0553,0x0583,0x0553},{0x0554,0x0554,0x0584,0x0554},{0x0555,0x0555,0x0585,0x0555}, -{0x0556,0x0556,0x0586,0x0556},{0x0561,0x0531,0x0561,0x0531},{0x0562,0x0532,0x0562,0x0532},{0x0563,0x0533,0x0563,0x0533}, -{0x0564,0x0534,0x0564,0x0534},{0x0565,0x0535,0x0565,0x0535},{0x0566,0x0536,0x0566,0x0536},{0x0567,0x0537,0x0567,0x0537}, -{0x0568,0x0538,0x0568,0x0538},{0x0569,0x0539,0x0569,0x0539},{0x056a,0x053a,0x056a,0x053a},{0x056b,0x053b,0x056b,0x053b}, -{0x056c,0x053c,0x056c,0x053c},{0x056d,0x053d,0x056d,0x053d},{0x056e,0x053e,0x056e,0x053e},{0x056f,0x053f,0x056f,0x053f}, -{0x0570,0x0540,0x0570,0x0540},{0x0571,0x0541,0x0571,0x0541},{0x0572,0x0542,0x0572,0x0542},{0x0573,0x0543,0x0573,0x0543}, -{0x0574,0x0544,0x0574,0x0544},{0x0575,0x0545,0x0575,0x0545},{0x0576,0x0546,0x0576,0x0546},{0x0577,0x0547,0x0577,0x0547}, -{0x0578,0x0548,0x0578,0x0548},{0x0579,0x0549,0x0579,0x0549},{0x1d79,0xa77d,0x1d79,0xa77d},{0x057a,0x054a,0x057a,0x054a}, -{0x057b,0x054b,0x057b,0x054b},{0x057c,0x054c,0x057c,0x054c},{0x057d,0x054d,0x057d,0x054d},{0x1d7d,0x2c63,0x1d7d,0x2c63}, -{0x057e,0x054e,0x057e,0x054e},{0x057f,0x054f,0x057f,0x054f},{0x0580,0x0550,0x0580,0x0550},{0x0581,0x0551,0x0581,0x0551}, -{0x0582,0x0552,0x0582,0x0552},{0x0583,0x0553,0x0583,0x0553},{0x0584,0x0554,0x0584,0x0554},{0x0585,0x0555,0x0585,0x0555}, -{0x0586,0x0556,0x0586,0x0556},{0x1e00,0x1e00,0x1e01,0x1e00},{0x1e01,0x1e00,0x1e01,0x1e00},{0x1e02,0x1e02,0x1e03,0x1e02}, +{0x047b,0x047a,0x047b,0x047a},{0x047c,0x047c,0x047d,0x047c},{0x047d,0x047c,0x047d,0x047c},{0x047e,0x047e,0x047f,0x047e}, +{0x2c7e,0x2c7e,0x023f,0x2c7e},{0x047f,0x047e,0x047f,0x047e},{0x2c7f,0x2c7f,0x0240,0x2c7f},{0x2c80,0x2c80,0x2c81,0x2c80}, +{0x0480,0x0480,0x0481,0x0480},{0x10c80,0x10c80,0x10cc0,0x10c80},{0x1c80,0x0412,0x1c80,0x0412},{0x1c81,0x0414,0x1c81,0x0414}, +{0x10c81,0x10c81,0x10cc1,0x10c81},{0x0481,0x0480,0x0481,0x0480},{0x2c81,0x2c80,0x2c81,0x2c80},{0x1c82,0x041e,0x1c82,0x041e}, +{0x2c82,0x2c82,0x2c83,0x2c82},{0x10c82,0x10c82,0x10cc2,0x10c82},{0x2c83,0x2c82,0x2c83,0x2c82},{0x1c83,0x0421,0x1c83,0x0421}, +{0x10c83,0x10c83,0x10cc3,0x10c83},{0x1c84,0x0422,0x1c84,0x0422},{0x10c84,0x10c84,0x10cc4,0x10c84},{0x2c84,0x2c84,0x2c85,0x2c84}, +{0x10c85,0x10c85,0x10cc5,0x10c85},{0x1c85,0x0422,0x1c85,0x0422},{0x2c85,0x2c84,0x2c85,0x2c84},{0x1c86,0x042a,0x1c86,0x042a}, +{0x2c86,0x2c86,0x2c87,0x2c86},{0x10c86,0x10c86,0x10cc6,0x10c86},{0x10c87,0x10c87,0x10cc7,0x10c87},{0x2c87,0x2c86,0x2c87,0x2c86}, +{0x1c87,0x0462,0x1c87,0x0462},{0x1c88,0xa64a,0x1c88,0xa64a},{0x10c88,0x10c88,0x10cc8,0x10c88},{0x2c88,0x2c88,0x2c89,0x2c88}, +{0x2c89,0x2c88,0x2c89,0x2c88},{0x10c89,0x10c89,0x10cc9,0x10c89},{0x2c8a,0x2c8a,0x2c8b,0x2c8a},{0x10c8a,0x10c8a,0x10cca,0x10c8a}, +{0x048a,0x048a,0x048b,0x048a},{0x10c8b,0x10c8b,0x10ccb,0x10c8b},{0x048b,0x048a,0x048b,0x048a},{0x2c8b,0x2c8a,0x2c8b,0x2c8a}, +{0x10c8c,0x10c8c,0x10ccc,0x10c8c},{0x048c,0x048c,0x048d,0x048c},{0x2c8c,0x2c8c,0x2c8d,0x2c8c},{0x2c8d,0x2c8c,0x2c8d,0x2c8c}, +{0x10c8d,0x10c8d,0x10ccd,0x10c8d},{0x048d,0x048c,0x048d,0x048c},{0x048e,0x048e,0x048f,0x048e},{0x10c8e,0x10c8e,0x10cce,0x10c8e}, +{0x2c8e,0x2c8e,0x2c8f,0x2c8e},{0x10c8f,0x10c8f,0x10ccf,0x10c8f},{0x2c8f,0x2c8e,0x2c8f,0x2c8e},{0x048f,0x048e,0x048f,0x048e}, +{0x1c90,0x1c90,0x10d0,0x1c90},{0x0490,0x0490,0x0491,0x0490},{0x10c90,0x10c90,0x10cd0,0x10c90},{0x2c90,0x2c90,0x2c91,0x2c90}, +{0x10c91,0x10c91,0x10cd1,0x10c91},{0x1c91,0x1c91,0x10d1,0x1c91},{0x0491,0x0490,0x0491,0x0490},{0x2c91,0x2c90,0x2c91,0x2c90}, +{0x10c92,0x10c92,0x10cd2,0x10c92},{0x1c92,0x1c92,0x10d2,0x1c92},{0x0492,0x0492,0x0493,0x0492},{0x2c92,0x2c92,0x2c93,0x2c92}, +{0x0493,0x0492,0x0493,0x0492},{0x2c93,0x2c92,0x2c93,0x2c92},{0x1c93,0x1c93,0x10d3,0x1c93},{0x10c93,0x10c93,0x10cd3,0x10c93}, +{0x10c94,0x10c94,0x10cd4,0x10c94},{0x0494,0x0494,0x0495,0x0494},{0x1c94,0x1c94,0x10d4,0x1c94},{0x2c94,0x2c94,0x2c95,0x2c94}, +{0x0495,0x0494,0x0495,0x0494},{0x10c95,0x10c95,0x10cd5,0x10c95},{0x1c95,0x1c95,0x10d5,0x1c95},{0x2c95,0x2c94,0x2c95,0x2c94}, +{0x10c96,0x10c96,0x10cd6,0x10c96},{0x2c96,0x2c96,0x2c97,0x2c96},{0x1c96,0x1c96,0x10d6,0x1c96},{0x0496,0x0496,0x0497,0x0496}, +{0x10c97,0x10c97,0x10cd7,0x10c97},{0x1c97,0x1c97,0x10d7,0x1c97},{0x2c97,0x2c96,0x2c97,0x2c96},{0x0497,0x0496,0x0497,0x0496}, +{0x2c98,0x2c98,0x2c99,0x2c98},{0x10c98,0x10c98,0x10cd8,0x10c98},{0x1c98,0x1c98,0x10d8,0x1c98},{0x0498,0x0498,0x0499,0x0498}, +{0x0499,0x0498,0x0499,0x0498},{0x1c99,0x1c99,0x10d9,0x1c99},{0x2c99,0x2c98,0x2c99,0x2c98},{0x10c99,0x10c99,0x10cd9,0x10c99}, +{0x1c9a,0x1c9a,0x10da,0x1c9a},{0x049a,0x049a,0x049b,0x049a},{0x2c9a,0x2c9a,0x2c9b,0x2c9a},{0x10c9a,0x10c9a,0x10cda,0x10c9a}, +{0x10c9b,0x10c9b,0x10cdb,0x10c9b},{0x049b,0x049a,0x049b,0x049a},{0x1c9b,0x1c9b,0x10db,0x1c9b},{0x2c9b,0x2c9a,0x2c9b,0x2c9a}, +{0x049c,0x049c,0x049d,0x049c},{0x10c9c,0x10c9c,0x10cdc,0x10c9c},{0x1c9c,0x1c9c,0x10dc,0x1c9c},{0x2c9c,0x2c9c,0x2c9d,0x2c9c}, +{0x2c9d,0x2c9c,0x2c9d,0x2c9c},{0x049d,0x049c,0x049d,0x049c},{0x1c9d,0x1c9d,0x10dd,0x1c9d},{0x10c9d,0x10c9d,0x10cdd,0x10c9d}, +{0x10c9e,0x10c9e,0x10cde,0x10c9e},{0x2c9e,0x2c9e,0x2c9f,0x2c9e},{0x049e,0x049e,0x049f,0x049e},{0x1c9e,0x1c9e,0x10de,0x1c9e}, +{0x2c9f,0x2c9e,0x2c9f,0x2c9e},{0x1c9f,0x1c9f,0x10df,0x1c9f},{0x10c9f,0x10c9f,0x10cdf,0x10c9f},{0x049f,0x049e,0x049f,0x049e}, +{0x04a0,0x04a0,0x04a1,0x04a0},{0x2ca0,0x2ca0,0x2ca1,0x2ca0},{0x10ca0,0x10ca0,0x10ce0,0x10ca0},{0x1ca0,0x1ca0,0x10e0,0x1ca0}, +{0x10ca1,0x10ca1,0x10ce1,0x10ca1},{0x04a1,0x04a0,0x04a1,0x04a0},{0x1ca1,0x1ca1,0x10e1,0x1ca1},{0x2ca1,0x2ca0,0x2ca1,0x2ca0}, +{0x04a2,0x04a2,0x04a3,0x04a2},{0x2ca2,0x2ca2,0x2ca3,0x2ca2},{0x10ca2,0x10ca2,0x10ce2,0x10ca2},{0x1ca2,0x1ca2,0x10e2,0x1ca2}, +{0x2ca3,0x2ca2,0x2ca3,0x2ca2},{0x1ca3,0x1ca3,0x10e3,0x1ca3},{0x10ca3,0x10ca3,0x10ce3,0x10ca3},{0x04a3,0x04a2,0x04a3,0x04a2}, +{0x10ca4,0x10ca4,0x10ce4,0x10ca4},{0x2ca4,0x2ca4,0x2ca5,0x2ca4},{0x1ca4,0x1ca4,0x10e4,0x1ca4},{0x04a4,0x04a4,0x04a5,0x04a4}, +{0x2ca5,0x2ca4,0x2ca5,0x2ca4},{0x1ca5,0x1ca5,0x10e5,0x1ca5},{0x10ca5,0x10ca5,0x10ce5,0x10ca5},{0x04a5,0x04a4,0x04a5,0x04a4}, +{0x1ca6,0x1ca6,0x10e6,0x1ca6},{0x2ca6,0x2ca6,0x2ca7,0x2ca6},{0x04a6,0x04a6,0x04a7,0x04a6},{0x10ca6,0x10ca6,0x10ce6,0x10ca6}, +{0x2ca7,0x2ca6,0x2ca7,0x2ca6},{0x10ca7,0x10ca7,0x10ce7,0x10ca7},{0x04a7,0x04a6,0x04a7,0x04a6},{0x1ca7,0x1ca7,0x10e7,0x1ca7}, +{0x04a8,0x04a8,0x04a9,0x04a8},{0x1ca8,0x1ca8,0x10e8,0x1ca8},{0x2ca8,0x2ca8,0x2ca9,0x2ca8},{0x10ca8,0x10ca8,0x10ce8,0x10ca8}, +{0x2ca9,0x2ca8,0x2ca9,0x2ca8},{0x04a9,0x04a8,0x04a9,0x04a8},{0x10ca9,0x10ca9,0x10ce9,0x10ca9},{0x1ca9,0x1ca9,0x10e9,0x1ca9}, +{0x2caa,0x2caa,0x2cab,0x2caa},{0x04aa,0x04aa,0x04ab,0x04aa},{0x1caa,0x1caa,0x10ea,0x1caa},{0x10caa,0x10caa,0x10cea,0x10caa}, +{0x1cab,0x1cab,0x10eb,0x1cab},{0x04ab,0x04aa,0x04ab,0x04aa},{0x10cab,0x10cab,0x10ceb,0x10cab},{0x2cab,0x2caa,0x2cab,0x2caa}, +{0x2cac,0x2cac,0x2cad,0x2cac},{0x10cac,0x10cac,0x10cec,0x10cac},{0x04ac,0x04ac,0x04ad,0x04ac},{0x1cac,0x1cac,0x10ec,0x1cac}, +{0x1cad,0x1cad,0x10ed,0x1cad},{0x2cad,0x2cac,0x2cad,0x2cac},{0x04ad,0x04ac,0x04ad,0x04ac},{0x10cad,0x10cad,0x10ced,0x10cad}, +{0x1cae,0x1cae,0x10ee,0x1cae},{0x2cae,0x2cae,0x2caf,0x2cae},{0x10cae,0x10cae,0x10cee,0x10cae},{0x04ae,0x04ae,0x04af,0x04ae}, +{0x2caf,0x2cae,0x2caf,0x2cae},{0x1caf,0x1caf,0x10ef,0x1caf},{0x04af,0x04ae,0x04af,0x04ae},{0x10caf,0x10caf,0x10cef,0x10caf}, +{0x104b0,0x104b0,0x104d8,0x104b0},{0x2cb0,0x2cb0,0x2cb1,0x2cb0},{0x04b0,0x04b0,0x04b1,0x04b0},{0x1cb0,0x1cb0,0x10f0,0x1cb0}, +{0x10cb0,0x10cb0,0x10cf0,0x10cb0},{0x10cb1,0x10cb1,0x10cf1,0x10cb1},{0x104b1,0x104b1,0x104d9,0x104b1},{0x04b1,0x04b0,0x04b1,0x04b0}, +{0x1cb1,0x1cb1,0x10f1,0x1cb1},{0x2cb1,0x2cb0,0x2cb1,0x2cb0},{0x04b2,0x04b2,0x04b3,0x04b2},{0x2cb2,0x2cb2,0x2cb3,0x2cb2}, +{0x104b2,0x104b2,0x104da,0x104b2},{0x1cb2,0x1cb2,0x10f2,0x1cb2},{0x10cb2,0x10cb2,0x10cf2,0x10cb2},{0x04b3,0x04b2,0x04b3,0x04b2}, +{0x1cb3,0x1cb3,0x10f3,0x1cb3},{0x104b3,0x104b3,0x104db,0x104b3},{0x2cb3,0x2cb2,0x2cb3,0x2cb2},{0x104b4,0x104b4,0x104dc,0x104b4}, +{0x1cb4,0x1cb4,0x10f4,0x1cb4},{0x2cb4,0x2cb4,0x2cb5,0x2cb4},{0x04b4,0x04b4,0x04b5,0x04b4},{0x2cb5,0x2cb4,0x2cb5,0x2cb4}, +{0x1cb5,0x1cb5,0x10f5,0x1cb5},{0x04b5,0x04b4,0x04b5,0x04b4},{0x104b5,0x104b5,0x104dd,0x104b5},{0x1cb6,0x1cb6,0x10f6,0x1cb6}, +{0x104b6,0x104b6,0x104de,0x104b6},{0x04b6,0x04b6,0x04b7,0x04b6},{0x24b6,0x24b6,0x24d0,0x24b6},{0x2cb6,0x2cb6,0x2cb7,0x2cb6}, +{0x04b7,0x04b6,0x04b7,0x04b6},{0x1cb7,0x1cb7,0x10f7,0x1cb7},{0x2cb7,0x2cb6,0x2cb7,0x2cb6},{0x104b7,0x104b7,0x104df,0x104b7}, +{0x24b7,0x24b7,0x24d1,0x24b7},{0x24b8,0x24b8,0x24d2,0x24b8},{0x04b8,0x04b8,0x04b9,0x04b8},{0x1cb8,0x1cb8,0x10f8,0x1cb8}, +{0x104b8,0x104b8,0x104e0,0x104b8},{0x2cb8,0x2cb8,0x2cb9,0x2cb8},{0x104b9,0x104b9,0x104e1,0x104b9},{0x04b9,0x04b8,0x04b9,0x04b8}, +{0x1cb9,0x1cb9,0x10f9,0x1cb9},{0x2cb9,0x2cb8,0x2cb9,0x2cb8},{0x24b9,0x24b9,0x24d3,0x24b9},{0x1cba,0x1cba,0x10fa,0x1cba}, +{0x04ba,0x04ba,0x04bb,0x04ba},{0x2cba,0x2cba,0x2cbb,0x2cba},{0x104ba,0x104ba,0x104e2,0x104ba},{0x24ba,0x24ba,0x24d4,0x24ba}, +{0x24bb,0x24bb,0x24d5,0x24bb},{0x04bb,0x04ba,0x04bb,0x04ba},{0x2cbb,0x2cba,0x2cbb,0x2cba},{0x104bb,0x104bb,0x104e3,0x104bb}, +{0x2cbc,0x2cbc,0x2cbd,0x2cbc},{0x24bc,0x24bc,0x24d6,0x24bc},{0x04bc,0x04bc,0x04bd,0x04bc},{0x104bc,0x104bc,0x104e4,0x104bc}, +{0x24bd,0x24bd,0x24d7,0x24bd},{0x104bd,0x104bd,0x104e5,0x104bd},{0x2cbd,0x2cbc,0x2cbd,0x2cbc},{0x04bd,0x04bc,0x04bd,0x04bc}, +{0x1cbd,0x1cbd,0x10fd,0x1cbd},{0x04be,0x04be,0x04bf,0x04be},{0x104be,0x104be,0x104e6,0x104be},{0x24be,0x24be,0x24d8,0x24be}, +{0x2cbe,0x2cbe,0x2cbf,0x2cbe},{0x1cbe,0x1cbe,0x10fe,0x1cbe},{0x04bf,0x04be,0x04bf,0x04be},{0x2cbf,0x2cbe,0x2cbf,0x2cbe}, +{0x24bf,0x24bf,0x24d9,0x24bf},{0x104bf,0x104bf,0x104e7,0x104bf},{0x1cbf,0x1cbf,0x10ff,0x1cbf},{0x04c0,0x04c0,0x04cf,0x04c0}, +{0x10cc0,0x10c80,0x10cc0,0x10c80},{0x104c0,0x104c0,0x104e8,0x104c0},{0x24c0,0x24c0,0x24da,0x24c0},{0x2cc0,0x2cc0,0x2cc1,0x2cc0}, +{0x104c1,0x104c1,0x104e9,0x104c1},{0x2cc1,0x2cc0,0x2cc1,0x2cc0},{0x24c1,0x24c1,0x24db,0x24c1},{0x04c1,0x04c1,0x04c2,0x04c1}, +{0x10cc1,0x10c81,0x10cc1,0x10c81},{0x10cc2,0x10c82,0x10cc2,0x10c82},{0x2cc2,0x2cc2,0x2cc3,0x2cc2},{0x24c2,0x24c2,0x24dc,0x24c2}, +{0x04c2,0x04c1,0x04c2,0x04c1},{0x104c2,0x104c2,0x104ea,0x104c2},{0x104c3,0x104c3,0x104eb,0x104c3},{0x24c3,0x24c3,0x24dd,0x24c3}, +{0x2cc3,0x2cc2,0x2cc3,0x2cc2},{0x10cc3,0x10c83,0x10cc3,0x10c83},{0x04c3,0x04c3,0x04c4,0x04c3},{0x04c4,0x04c3,0x04c4,0x04c3}, +{0x24c4,0x24c4,0x24de,0x24c4},{0x2cc4,0x2cc4,0x2cc5,0x2cc4},{0x10cc4,0x10c84,0x10cc4,0x10c84},{0x104c4,0x104c4,0x104ec,0x104c4}, +{0x24c5,0x24c5,0x24df,0x24c5},{0x10cc5,0x10c85,0x10cc5,0x10c85},{0x04c5,0x04c5,0x04c6,0x04c5},{0x104c5,0x104c5,0x104ed,0x104c5}, +{0x2cc5,0x2cc4,0x2cc5,0x2cc4},{0x2cc6,0x2cc6,0x2cc7,0x2cc6},{0x104c6,0x104c6,0x104ee,0x104c6},{0x04c6,0x04c5,0x04c6,0x04c5}, +{0x24c6,0x24c6,0x24e0,0x24c6},{0x10cc6,0x10c86,0x10cc6,0x10c86},{0x104c7,0x104c7,0x104ef,0x104c7},{0x10cc7,0x10c87,0x10cc7,0x10c87}, +{0x24c7,0x24c7,0x24e1,0x24c7},{0x2cc7,0x2cc6,0x2cc7,0x2cc6},{0x04c7,0x04c7,0x04c8,0x04c7},{0x04c8,0x04c7,0x04c8,0x04c7}, +{0x104c8,0x104c8,0x104f0,0x104c8},{0x2cc8,0x2cc8,0x2cc9,0x2cc8},{0x10cc8,0x10c88,0x10cc8,0x10c88},{0x24c8,0x24c8,0x24e2,0x24c8}, +{0x24c9,0x24c9,0x24e3,0x24c9},{0x04c9,0x04c9,0x04ca,0x04c9},{0x2cc9,0x2cc8,0x2cc9,0x2cc8},{0x104c9,0x104c9,0x104f1,0x104c9}, +{0x10cc9,0x10c89,0x10cc9,0x10c89},{0x24ca,0x24ca,0x24e4,0x24ca},{0x04ca,0x04c9,0x04ca,0x04c9},{0x104ca,0x104ca,0x104f2,0x104ca}, +{0x10cca,0x10c8a,0x10cca,0x10c8a},{0x2cca,0x2cca,0x2ccb,0x2cca},{0x24cb,0x24cb,0x24e5,0x24cb},{0x10ccb,0x10c8b,0x10ccb,0x10c8b}, +{0x2ccb,0x2cca,0x2ccb,0x2cca},{0x104cb,0x104cb,0x104f3,0x104cb},{0x04cb,0x04cb,0x04cc,0x04cb},{0x10ccc,0x10c8c,0x10ccc,0x10c8c}, +{0x104cc,0x104cc,0x104f4,0x104cc},{0x2ccc,0x2ccc,0x2ccd,0x2ccc},{0x04cc,0x04cb,0x04cc,0x04cb},{0x24cc,0x24cc,0x24e6,0x24cc}, +{0x24cd,0x24cd,0x24e7,0x24cd},{0x10ccd,0x10c8d,0x10ccd,0x10c8d},{0x104cd,0x104cd,0x104f5,0x104cd},{0x04cd,0x04cd,0x04ce,0x04cd}, +{0x2ccd,0x2ccc,0x2ccd,0x2ccc},{0x10cce,0x10c8e,0x10cce,0x10c8e},{0x24ce,0x24ce,0x24e8,0x24ce},{0x2cce,0x2cce,0x2ccf,0x2cce}, +{0x104ce,0x104ce,0x104f6,0x104ce},{0x04ce,0x04cd,0x04ce,0x04cd},{0x2ccf,0x2cce,0x2ccf,0x2cce},{0x24cf,0x24cf,0x24e9,0x24cf}, +{0x04cf,0x04c0,0x04cf,0x04c0},{0x10ccf,0x10c8f,0x10ccf,0x10c8f},{0x104cf,0x104cf,0x104f7,0x104cf},{0x10cd0,0x10c90,0x10cd0,0x10c90}, +{0x04d0,0x04d0,0x04d1,0x04d0},{0x104d0,0x104d0,0x104f8,0x104d0},{0x2cd0,0x2cd0,0x2cd1,0x2cd0},{0x24d0,0x24b6,0x24d0,0x24b6}, +{0x2cd1,0x2cd0,0x2cd1,0x2cd0},{0x10cd1,0x10c91,0x10cd1,0x10c91},{0x04d1,0x04d0,0x04d1,0x04d0},{0x104d1,0x104d1,0x104f9,0x104d1}, +{0x24d1,0x24b7,0x24d1,0x24b7},{0x10cd2,0x10c92,0x10cd2,0x10c92},{0x2cd2,0x2cd2,0x2cd3,0x2cd2},{0x24d2,0x24b8,0x24d2,0x24b8}, +{0x04d2,0x04d2,0x04d3,0x04d2},{0x104d2,0x104d2,0x104fa,0x104d2},{0x24d3,0x24b9,0x24d3,0x24b9},{0x104d3,0x104d3,0x104fb,0x104d3}, +{0x10cd3,0x10c93,0x10cd3,0x10c93},{0x04d3,0x04d2,0x04d3,0x04d2},{0x2cd3,0x2cd2,0x2cd3,0x2cd2},{0x2cd4,0x2cd4,0x2cd5,0x2cd4}, +{0x24d4,0x24ba,0x24d4,0x24ba},{0x10cd4,0x10c94,0x10cd4,0x10c94},{0x04d4,0x04d4,0x04d5,0x04d4},{0x24d5,0x24bb,0x24d5,0x24bb}, +{0x04d5,0x04d4,0x04d5,0x04d4},{0x2cd5,0x2cd4,0x2cd5,0x2cd4},{0x10cd5,0x10c95,0x10cd5,0x10c95},{0x2cd6,0x2cd6,0x2cd7,0x2cd6}, +{0x04d6,0x04d6,0x04d7,0x04d6},{0x24d6,0x24bc,0x24d6,0x24bc},{0x10cd6,0x10c96,0x10cd6,0x10c96},{0x2cd7,0x2cd6,0x2cd7,0x2cd6}, +{0x04d7,0x04d6,0x04d7,0x04d6},{0x10cd7,0x10c97,0x10cd7,0x10c97},{0x24d7,0x24bd,0x24d7,0x24bd},{0x10cd8,0x10c98,0x10cd8,0x10c98}, +{0x04d8,0x04d8,0x04d9,0x04d8},{0x104d8,0x104b0,0x104d8,0x104b0},{0x24d8,0x24be,0x24d8,0x24be},{0x2cd8,0x2cd8,0x2cd9,0x2cd8}, +{0x104d9,0x104b1,0x104d9,0x104b1},{0x2cd9,0x2cd8,0x2cd9,0x2cd8},{0x04d9,0x04d8,0x04d9,0x04d8},{0x10cd9,0x10c99,0x10cd9,0x10c99}, +{0x24d9,0x24bf,0x24d9,0x24bf},{0x24da,0x24c0,0x24da,0x24c0},{0x104da,0x104b2,0x104da,0x104b2},{0x10cda,0x10c9a,0x10cda,0x10c9a}, +{0x04da,0x04da,0x04db,0x04da},{0x2cda,0x2cda,0x2cdb,0x2cda},{0x24db,0x24c1,0x24db,0x24c1},{0x2cdb,0x2cda,0x2cdb,0x2cda}, +{0x10cdb,0x10c9b,0x10cdb,0x10c9b},{0x104db,0x104b3,0x104db,0x104b3},{0x04db,0x04da,0x04db,0x04da},{0x04dc,0x04dc,0x04dd,0x04dc}, +{0x24dc,0x24c2,0x24dc,0x24c2},{0x10cdc,0x10c9c,0x10cdc,0x10c9c},{0x2cdc,0x2cdc,0x2cdd,0x2cdc},{0x104dc,0x104b4,0x104dc,0x104b4}, +{0x04dd,0x04dc,0x04dd,0x04dc},{0x104dd,0x104b5,0x104dd,0x104b5},{0x10cdd,0x10c9d,0x10cdd,0x10c9d},{0x2cdd,0x2cdc,0x2cdd,0x2cdc}, +{0x24dd,0x24c3,0x24dd,0x24c3},{0x2cde,0x2cde,0x2cdf,0x2cde},{0x04de,0x04de,0x04df,0x04de},{0x104de,0x104b6,0x104de,0x104b6}, +{0x10cde,0x10c9e,0x10cde,0x10c9e},{0x24de,0x24c4,0x24de,0x24c4},{0x10cdf,0x10c9f,0x10cdf,0x10c9f},{0x2cdf,0x2cde,0x2cdf,0x2cde}, +{0x104df,0x104b7,0x104df,0x104b7},{0x04df,0x04de,0x04df,0x04de},{0x24df,0x24c5,0x24df,0x24c5},{0x2ce0,0x2ce0,0x2ce1,0x2ce0}, +{0x104e0,0x104b8,0x104e0,0x104b8},{0x24e0,0x24c6,0x24e0,0x24c6},{0x10ce0,0x10ca0,0x10ce0,0x10ca0},{0x04e0,0x04e0,0x04e1,0x04e0}, +{0x2ce1,0x2ce0,0x2ce1,0x2ce0},{0x10ce1,0x10ca1,0x10ce1,0x10ca1},{0x24e1,0x24c7,0x24e1,0x24c7},{0x104e1,0x104b9,0x104e1,0x104b9}, +{0x04e1,0x04e0,0x04e1,0x04e0},{0x10ce2,0x10ca2,0x10ce2,0x10ca2},{0x104e2,0x104ba,0x104e2,0x104ba},{0x24e2,0x24c8,0x24e2,0x24c8}, +{0x04e2,0x04e2,0x04e3,0x04e2},{0x2ce2,0x2ce2,0x2ce3,0x2ce2},{0x104e3,0x104bb,0x104e3,0x104bb},{0x24e3,0x24c9,0x24e3,0x24c9}, +{0x2ce3,0x2ce2,0x2ce3,0x2ce2},{0x04e3,0x04e2,0x04e3,0x04e2},{0x10ce3,0x10ca3,0x10ce3,0x10ca3},{0x04e4,0x04e4,0x04e5,0x04e4}, +{0x10ce4,0x10ca4,0x10ce4,0x10ca4},{0x104e4,0x104bc,0x104e4,0x104bc},{0x24e4,0x24ca,0x24e4,0x24ca},{0x104e5,0x104bd,0x104e5,0x104bd}, +{0x04e5,0x04e4,0x04e5,0x04e4},{0x10ce5,0x10ca5,0x10ce5,0x10ca5},{0x24e5,0x24cb,0x24e5,0x24cb},{0x10ce6,0x10ca6,0x10ce6,0x10ca6}, +{0x04e6,0x04e6,0x04e7,0x04e6},{0x104e6,0x104be,0x104e6,0x104be},{0x24e6,0x24cc,0x24e6,0x24cc},{0x24e7,0x24cd,0x24e7,0x24cd}, +{0x10ce7,0x10ca7,0x10ce7,0x10ca7},{0x104e7,0x104bf,0x104e7,0x104bf},{0x04e7,0x04e6,0x04e7,0x04e6},{0x24e8,0x24ce,0x24e8,0x24ce}, +{0x10ce8,0x10ca8,0x10ce8,0x10ca8},{0x104e8,0x104c0,0x104e8,0x104c0},{0x04e8,0x04e8,0x04e9,0x04e8},{0x24e9,0x24cf,0x24e9,0x24cf}, +{0x04e9,0x04e8,0x04e9,0x04e8},{0x104e9,0x104c1,0x104e9,0x104c1},{0x10ce9,0x10ca9,0x10ce9,0x10ca9},{0x10cea,0x10caa,0x10cea,0x10caa}, +{0x104ea,0x104c2,0x104ea,0x104c2},{0x04ea,0x04ea,0x04eb,0x04ea},{0x2ceb,0x2ceb,0x2cec,0x2ceb},{0x04eb,0x04ea,0x04eb,0x04ea}, +{0x104eb,0x104c3,0x104eb,0x104c3},{0x10ceb,0x10cab,0x10ceb,0x10cab},{0x104ec,0x104c4,0x104ec,0x104c4},{0x10cec,0x10cac,0x10cec,0x10cac}, +{0x2cec,0x2ceb,0x2cec,0x2ceb},{0x04ec,0x04ec,0x04ed,0x04ec},{0x10ced,0x10cad,0x10ced,0x10cad},{0x104ed,0x104c5,0x104ed,0x104c5}, +{0x04ed,0x04ec,0x04ed,0x04ec},{0x2ced,0x2ced,0x2cee,0x2ced},{0x104ee,0x104c6,0x104ee,0x104c6},{0x04ee,0x04ee,0x04ef,0x04ee}, +{0x2cee,0x2ced,0x2cee,0x2ced},{0x10cee,0x10cae,0x10cee,0x10cae},{0x04ef,0x04ee,0x04ef,0x04ee},{0x104ef,0x104c7,0x104ef,0x104c7}, +{0x10cef,0x10caf,0x10cef,0x10caf},{0x10cf0,0x10cb0,0x10cf0,0x10cb0},{0x04f0,0x04f0,0x04f1,0x04f0},{0x104f0,0x104c8,0x104f0,0x104c8}, +{0x104f1,0x104c9,0x104f1,0x104c9},{0x10cf1,0x10cb1,0x10cf1,0x10cb1},{0x04f1,0x04f0,0x04f1,0x04f0},{0x10cf2,0x10cb2,0x10cf2,0x10cb2}, +{0x2cf2,0x2cf2,0x2cf3,0x2cf2},{0x104f2,0x104ca,0x104f2,0x104ca},{0x04f2,0x04f2,0x04f3,0x04f2},{0x2cf3,0x2cf2,0x2cf3,0x2cf2}, +{0x04f3,0x04f2,0x04f3,0x04f2},{0x104f3,0x104cb,0x104f3,0x104cb},{0x104f4,0x104cc,0x104f4,0x104cc},{0x04f4,0x04f4,0x04f5,0x04f4}, +{0x04f5,0x04f4,0x04f5,0x04f4},{0x104f5,0x104cd,0x104f5,0x104cd},{0x04f6,0x04f6,0x04f7,0x04f6},{0x104f6,0x104ce,0x104f6,0x104ce}, +{0x104f7,0x104cf,0x104f7,0x104cf},{0x04f7,0x04f6,0x04f7,0x04f6},{0x104f8,0x104d0,0x104f8,0x104d0},{0x04f8,0x04f8,0x04f9,0x04f8}, +{0x104f9,0x104d1,0x104f9,0x104d1},{0x04f9,0x04f8,0x04f9,0x04f8},{0x104fa,0x104d2,0x104fa,0x104d2},{0x04fa,0x04fa,0x04fb,0x04fa}, +{0x04fb,0x04fa,0x04fb,0x04fa},{0x104fb,0x104d3,0x104fb,0x104d3},{0x04fc,0x04fc,0x04fd,0x04fc},{0x04fd,0x04fc,0x04fd,0x04fc}, +{0x04fe,0x04fe,0x04ff,0x04fe},{0x04ff,0x04fe,0x04ff,0x04fe},{0x2d00,0x10a0,0x2d00,0x10a0},{0x0500,0x0500,0x0501,0x0500}, +{0x0501,0x0500,0x0501,0x0500},{0x2d01,0x10a1,0x2d01,0x10a1},{0x0502,0x0502,0x0503,0x0502},{0x2d02,0x10a2,0x2d02,0x10a2}, +{0x0503,0x0502,0x0503,0x0502},{0x2d03,0x10a3,0x2d03,0x10a3},{0x2d04,0x10a4,0x2d04,0x10a4},{0x0504,0x0504,0x0505,0x0504}, +{0x2d05,0x10a5,0x2d05,0x10a5},{0x0505,0x0504,0x0505,0x0504},{0x0506,0x0506,0x0507,0x0506},{0x2d06,0x10a6,0x2d06,0x10a6}, +{0x0507,0x0506,0x0507,0x0506},{0x2d07,0x10a7,0x2d07,0x10a7},{0x0508,0x0508,0x0509,0x0508},{0x2d08,0x10a8,0x2d08,0x10a8}, +{0x0509,0x0508,0x0509,0x0508},{0x2d09,0x10a9,0x2d09,0x10a9},{0x2d0a,0x10aa,0x2d0a,0x10aa},{0x050a,0x050a,0x050b,0x050a}, +{0x050b,0x050a,0x050b,0x050a},{0x2d0b,0x10ab,0x2d0b,0x10ab},{0x2d0c,0x10ac,0x2d0c,0x10ac},{0x050c,0x050c,0x050d,0x050c}, +{0x2d0d,0x10ad,0x2d0d,0x10ad},{0x050d,0x050c,0x050d,0x050c},{0x050e,0x050e,0x050f,0x050e},{0x2d0e,0x10ae,0x2d0e,0x10ae}, +{0x050f,0x050e,0x050f,0x050e},{0x2d0f,0x10af,0x2d0f,0x10af},{0x0510,0x0510,0x0511,0x0510},{0x2d10,0x10b0,0x2d10,0x10b0}, +{0x0511,0x0510,0x0511,0x0510},{0x2d11,0x10b1,0x2d11,0x10b1},{0x2d12,0x10b2,0x2d12,0x10b2},{0x0512,0x0512,0x0513,0x0512}, +{0x2d13,0x10b3,0x2d13,0x10b3},{0x0513,0x0512,0x0513,0x0512},{0x0514,0x0514,0x0515,0x0514},{0x2d14,0x10b4,0x2d14,0x10b4}, +{0x2d15,0x10b5,0x2d15,0x10b5},{0x0515,0x0514,0x0515,0x0514},{0x0516,0x0516,0x0517,0x0516},{0x2d16,0x10b6,0x2d16,0x10b6}, +{0x0517,0x0516,0x0517,0x0516},{0x2d17,0x10b7,0x2d17,0x10b7},{0x2d18,0x10b8,0x2d18,0x10b8},{0x0518,0x0518,0x0519,0x0518}, +{0x2d19,0x10b9,0x2d19,0x10b9},{0x0519,0x0518,0x0519,0x0518},{0x2d1a,0x10ba,0x2d1a,0x10ba},{0x051a,0x051a,0x051b,0x051a}, +{0x2d1b,0x10bb,0x2d1b,0x10bb},{0x051b,0x051a,0x051b,0x051a},{0x051c,0x051c,0x051d,0x051c},{0x2d1c,0x10bc,0x2d1c,0x10bc}, +{0x051d,0x051c,0x051d,0x051c},{0x2d1d,0x10bd,0x2d1d,0x10bd},{0x051e,0x051e,0x051f,0x051e},{0x2d1e,0x10be,0x2d1e,0x10be}, +{0x2d1f,0x10bf,0x2d1f,0x10bf},{0x051f,0x051e,0x051f,0x051e},{0x2d20,0x10c0,0x2d20,0x10c0},{0x0520,0x0520,0x0521,0x0520}, +{0x2d21,0x10c1,0x2d21,0x10c1},{0x0521,0x0520,0x0521,0x0520},{0x2d22,0x10c2,0x2d22,0x10c2},{0x0522,0x0522,0x0523,0x0522}, +{0x0523,0x0522,0x0523,0x0522},{0x2d23,0x10c3,0x2d23,0x10c3},{0x0524,0x0524,0x0525,0x0524},{0x2d24,0x10c4,0x2d24,0x10c4}, +{0x2d25,0x10c5,0x2d25,0x10c5},{0x0525,0x0524,0x0525,0x0524},{0x0526,0x0526,0x0527,0x0526},{0x2d27,0x10c7,0x2d27,0x10c7}, +{0x0527,0x0526,0x0527,0x0526},{0x0528,0x0528,0x0529,0x0528},{0x0529,0x0528,0x0529,0x0528},{0x052a,0x052a,0x052b,0x052a}, +{0x052b,0x052a,0x052b,0x052a},{0x052c,0x052c,0x052d,0x052c},{0x052d,0x052c,0x052d,0x052c},{0x2d2d,0x10cd,0x2d2d,0x10cd}, +{0x052e,0x052e,0x052f,0x052e},{0x052f,0x052e,0x052f,0x052e},{0x0531,0x0531,0x0561,0x0531},{0x0532,0x0532,0x0562,0x0532}, +{0x0533,0x0533,0x0563,0x0533},{0x0534,0x0534,0x0564,0x0534},{0x0535,0x0535,0x0565,0x0535},{0x0536,0x0536,0x0566,0x0536}, +{0x0537,0x0537,0x0567,0x0537},{0x0538,0x0538,0x0568,0x0538},{0x0539,0x0539,0x0569,0x0539},{0x053a,0x053a,0x056a,0x053a}, +{0x053b,0x053b,0x056b,0x053b},{0x053c,0x053c,0x056c,0x053c},{0x053d,0x053d,0x056d,0x053d},{0x053e,0x053e,0x056e,0x053e}, +{0x053f,0x053f,0x056f,0x053f},{0x0540,0x0540,0x0570,0x0540},{0x0541,0x0541,0x0571,0x0541},{0x0542,0x0542,0x0572,0x0542}, +{0x0543,0x0543,0x0573,0x0543},{0x0544,0x0544,0x0574,0x0544},{0x0545,0x0545,0x0575,0x0545},{0x0546,0x0546,0x0576,0x0546}, +{0x0547,0x0547,0x0577,0x0547},{0x0548,0x0548,0x0578,0x0548},{0x0549,0x0549,0x0579,0x0549},{0x054a,0x054a,0x057a,0x054a}, +{0x054b,0x054b,0x057b,0x054b},{0x054c,0x054c,0x057c,0x054c},{0x054d,0x054d,0x057d,0x054d},{0x054e,0x054e,0x057e,0x054e}, +{0x054f,0x054f,0x057f,0x054f},{0x0550,0x0550,0x0580,0x0550},{0x0551,0x0551,0x0581,0x0551},{0x0552,0x0552,0x0582,0x0552}, +{0x0553,0x0553,0x0583,0x0553},{0x0554,0x0554,0x0584,0x0554},{0x0555,0x0555,0x0585,0x0555},{0x0556,0x0556,0x0586,0x0556}, +{0x0561,0x0531,0x0561,0x0531},{0x0562,0x0532,0x0562,0x0532},{0x0563,0x0533,0x0563,0x0533},{0x0564,0x0534,0x0564,0x0534}, +{0x0565,0x0535,0x0565,0x0535},{0x0566,0x0536,0x0566,0x0536},{0x0567,0x0537,0x0567,0x0537},{0x0568,0x0538,0x0568,0x0538}, +{0x0569,0x0539,0x0569,0x0539},{0x056a,0x053a,0x056a,0x053a},{0x056b,0x053b,0x056b,0x053b},{0x056c,0x053c,0x056c,0x053c}, +{0x056d,0x053d,0x056d,0x053d},{0x056e,0x053e,0x056e,0x053e},{0x056f,0x053f,0x056f,0x053f},{0x0570,0x0540,0x0570,0x0540}, +{0x0571,0x0541,0x0571,0x0541},{0x0572,0x0542,0x0572,0x0542},{0x0573,0x0543,0x0573,0x0543},{0x0574,0x0544,0x0574,0x0544}, +{0x0575,0x0545,0x0575,0x0545},{0x0576,0x0546,0x0576,0x0546},{0x0577,0x0547,0x0577,0x0547},{0x0578,0x0548,0x0578,0x0548}, +{0x1d79,0xa77d,0x1d79,0xa77d},{0x0579,0x0549,0x0579,0x0549},{0x057a,0x054a,0x057a,0x054a},{0x057b,0x054b,0x057b,0x054b}, +{0x057c,0x054c,0x057c,0x054c},{0x057d,0x054d,0x057d,0x054d},{0x1d7d,0x2c63,0x1d7d,0x2c63},{0x057e,0x054e,0x057e,0x054e}, +{0x057f,0x054f,0x057f,0x054f},{0x0580,0x0550,0x0580,0x0550},{0x0581,0x0551,0x0581,0x0551},{0x0582,0x0552,0x0582,0x0552}, +{0x0583,0x0553,0x0583,0x0553},{0x0584,0x0554,0x0584,0x0554},{0x0585,0x0555,0x0585,0x0555},{0x0586,0x0556,0x0586,0x0556}, +{0x1d8e,0xa7c6,0x1d8e,0xa7c6},{0x1e00,0x1e00,0x1e01,0x1e00},{0x1e01,0x1e00,0x1e01,0x1e00},{0x1e02,0x1e02,0x1e03,0x1e02}, {0x1e03,0x1e02,0x1e03,0x1e02},{0x1e04,0x1e04,0x1e05,0x1e04},{0x1e05,0x1e04,0x1e05,0x1e04},{0x1e06,0x1e06,0x1e07,0x1e06}, {0x1e07,0x1e06,0x1e07,0x1e06},{0x1e08,0x1e08,0x1e09,0x1e08},{0x1e09,0x1e08,0x1e09,0x1e08},{0x1e0a,0x1e0a,0x1e0b,0x1e0a}, {0x1e0b,0x1e0a,0x1e0b,0x1e0a},{0x1e0c,0x1e0c,0x1e0d,0x1e0c},{0x1e0d,0x1e0c,0x1e0d,0x1e0c},{0x1e0e,0x1e0e,0x1e0f,0x1e0e}, @@ -468,45 +529,61 @@ const char32_t unicode_case_tab[][4]={ {0x1e33,0x1e32,0x1e33,0x1e32},{0x1e34,0x1e34,0x1e35,0x1e34},{0x1e35,0x1e34,0x1e35,0x1e34},{0x1e36,0x1e36,0x1e37,0x1e36}, {0x1e37,0x1e36,0x1e37,0x1e36},{0x1e38,0x1e38,0x1e39,0x1e38},{0x1e39,0x1e38,0x1e39,0x1e38},{0x1e3a,0x1e3a,0x1e3b,0x1e3a}, {0x1e3b,0x1e3a,0x1e3b,0x1e3a},{0x1e3c,0x1e3c,0x1e3d,0x1e3c},{0x1e3d,0x1e3c,0x1e3d,0x1e3c},{0x1e3e,0x1e3e,0x1e3f,0x1e3e}, -{0x1e3f,0x1e3e,0x1e3f,0x1e3e},{0xa640,0xa640,0xa641,0xa640},{0x1e40,0x1e40,0x1e41,0x1e40},{0x1e41,0x1e40,0x1e41,0x1e40}, -{0xa641,0xa640,0xa641,0xa640},{0xa642,0xa642,0xa643,0xa642},{0x1e42,0x1e42,0x1e43,0x1e42},{0xa643,0xa642,0xa643,0xa642}, -{0x1e43,0x1e42,0x1e43,0x1e42},{0x1e44,0x1e44,0x1e45,0x1e44},{0xa644,0xa644,0xa645,0xa644},{0xa645,0xa644,0xa645,0xa644}, -{0x1e45,0x1e44,0x1e45,0x1e44},{0x1e46,0x1e46,0x1e47,0x1e46},{0xa646,0xa646,0xa647,0xa646},{0xa647,0xa646,0xa647,0xa646}, -{0x1e47,0x1e46,0x1e47,0x1e46},{0x1e48,0x1e48,0x1e49,0x1e48},{0xa648,0xa648,0xa649,0xa648},{0x1e49,0x1e48,0x1e49,0x1e48}, -{0xa649,0xa648,0xa649,0xa648},{0xa64a,0xa64a,0xa64b,0xa64a},{0x1e4a,0x1e4a,0x1e4b,0x1e4a},{0xa64b,0xa64a,0xa64b,0xa64a}, -{0x1e4b,0x1e4a,0x1e4b,0x1e4a},{0xa64c,0xa64c,0xa64d,0xa64c},{0x1e4c,0x1e4c,0x1e4d,0x1e4c},{0x1e4d,0x1e4c,0x1e4d,0x1e4c}, -{0xa64d,0xa64c,0xa64d,0xa64c},{0x1e4e,0x1e4e,0x1e4f,0x1e4e},{0xa64e,0xa64e,0xa64f,0xa64e},{0x1e4f,0x1e4e,0x1e4f,0x1e4e}, -{0xa64f,0xa64e,0xa64f,0xa64e},{0xa650,0xa650,0xa651,0xa650},{0x1e50,0x1e50,0x1e51,0x1e50},{0xa651,0xa650,0xa651,0xa650}, -{0x1e51,0x1e50,0x1e51,0x1e50},{0x1e52,0x1e52,0x1e53,0x1e52},{0xa652,0xa652,0xa653,0xa652},{0x1e53,0x1e52,0x1e53,0x1e52}, -{0xa653,0xa652,0xa653,0xa652},{0x1e54,0x1e54,0x1e55,0x1e54},{0xa654,0xa654,0xa655,0xa654},{0x1e55,0x1e54,0x1e55,0x1e54}, -{0xa655,0xa654,0xa655,0xa654},{0x1e56,0x1e56,0x1e57,0x1e56},{0xa656,0xa656,0xa657,0xa656},{0xa657,0xa656,0xa657,0xa656}, -{0x1e57,0x1e56,0x1e57,0x1e56},{0x1e58,0x1e58,0x1e59,0x1e58},{0xa658,0xa658,0xa659,0xa658},{0xa659,0xa658,0xa659,0xa658}, -{0x1e59,0x1e58,0x1e59,0x1e58},{0xa65a,0xa65a,0xa65b,0xa65a},{0x1e5a,0x1e5a,0x1e5b,0x1e5a},{0x1e5b,0x1e5a,0x1e5b,0x1e5a}, -{0xa65b,0xa65a,0xa65b,0xa65a},{0x1e5c,0x1e5c,0x1e5d,0x1e5c},{0xa65c,0xa65c,0xa65d,0xa65c},{0xa65d,0xa65c,0xa65d,0xa65c}, -{0x1e5d,0x1e5c,0x1e5d,0x1e5c},{0x1e5e,0x1e5e,0x1e5f,0x1e5e},{0xa65e,0xa65e,0xa65f,0xa65e},{0x1e5f,0x1e5e,0x1e5f,0x1e5e}, -{0xa65f,0xa65e,0xa65f,0xa65e},{0xa660,0xa660,0xa661,0xa660},{0x1e60,0x1e60,0x1e61,0x1e60},{0x1e61,0x1e60,0x1e61,0x1e60}, -{0xa661,0xa660,0xa661,0xa660},{0x1e62,0x1e62,0x1e63,0x1e62},{0xa662,0xa662,0xa663,0xa662},{0xa663,0xa662,0xa663,0xa662}, -{0x1e63,0x1e62,0x1e63,0x1e62},{0xa664,0xa664,0xa665,0xa664},{0x1e64,0x1e64,0x1e65,0x1e64},{0xa665,0xa664,0xa665,0xa664}, -{0x1e65,0x1e64,0x1e65,0x1e64},{0x1e66,0x1e66,0x1e67,0x1e66},{0xa666,0xa666,0xa667,0xa666},{0xa667,0xa666,0xa667,0xa666}, -{0x1e67,0x1e66,0x1e67,0x1e66},{0x1e68,0x1e68,0x1e69,0x1e68},{0xa668,0xa668,0xa669,0xa668},{0x1e69,0x1e68,0x1e69,0x1e68}, -{0xa669,0xa668,0xa669,0xa668},{0x1e6a,0x1e6a,0x1e6b,0x1e6a},{0xa66a,0xa66a,0xa66b,0xa66a},{0xa66b,0xa66a,0xa66b,0xa66a}, -{0x1e6b,0x1e6a,0x1e6b,0x1e6a},{0xa66c,0xa66c,0xa66d,0xa66c},{0x1e6c,0x1e6c,0x1e6d,0x1e6c},{0x1e6d,0x1e6c,0x1e6d,0x1e6c}, -{0xa66d,0xa66c,0xa66d,0xa66c},{0x1e6e,0x1e6e,0x1e6f,0x1e6e},{0x1e6f,0x1e6e,0x1e6f,0x1e6e},{0x1e70,0x1e70,0x1e71,0x1e70}, -{0x1e71,0x1e70,0x1e71,0x1e70},{0x1e72,0x1e72,0x1e73,0x1e72},{0x1e73,0x1e72,0x1e73,0x1e72},{0x1e74,0x1e74,0x1e75,0x1e74}, -{0x1e75,0x1e74,0x1e75,0x1e74},{0x1e76,0x1e76,0x1e77,0x1e76},{0x1e77,0x1e76,0x1e77,0x1e76},{0x1e78,0x1e78,0x1e79,0x1e78}, -{0x1e79,0x1e78,0x1e79,0x1e78},{0x1e7a,0x1e7a,0x1e7b,0x1e7a},{0x1e7b,0x1e7a,0x1e7b,0x1e7a},{0x1e7c,0x1e7c,0x1e7d,0x1e7c}, -{0x1e7d,0x1e7c,0x1e7d,0x1e7c},{0x1e7e,0x1e7e,0x1e7f,0x1e7e},{0x1e7f,0x1e7e,0x1e7f,0x1e7e},{0xa680,0xa680,0xa681,0xa680}, -{0x1e80,0x1e80,0x1e81,0x1e80},{0xa681,0xa680,0xa681,0xa680},{0x1e81,0x1e80,0x1e81,0x1e80},{0xa682,0xa682,0xa683,0xa682}, -{0x1e82,0x1e82,0x1e83,0x1e82},{0xa683,0xa682,0xa683,0xa682},{0x1e83,0x1e82,0x1e83,0x1e82},{0xa684,0xa684,0xa685,0xa684}, -{0x1e84,0x1e84,0x1e85,0x1e84},{0x1e85,0x1e84,0x1e85,0x1e84},{0xa685,0xa684,0xa685,0xa684},{0x1e86,0x1e86,0x1e87,0x1e86}, -{0xa686,0xa686,0xa687,0xa686},{0xa687,0xa686,0xa687,0xa686},{0x1e87,0x1e86,0x1e87,0x1e86},{0xa688,0xa688,0xa689,0xa688}, -{0x1e88,0x1e88,0x1e89,0x1e88},{0x1e89,0x1e88,0x1e89,0x1e88},{0xa689,0xa688,0xa689,0xa688},{0x1e8a,0x1e8a,0x1e8b,0x1e8a}, -{0xa68a,0xa68a,0xa68b,0xa68a},{0xa68b,0xa68a,0xa68b,0xa68a},{0x1e8b,0x1e8a,0x1e8b,0x1e8a},{0x1e8c,0x1e8c,0x1e8d,0x1e8c}, -{0xa68c,0xa68c,0xa68d,0xa68c},{0x1e8d,0x1e8c,0x1e8d,0x1e8c},{0xa68d,0xa68c,0xa68d,0xa68c},{0xa68e,0xa68e,0xa68f,0xa68e}, +{0x1e3f,0x1e3e,0x1e3f,0x1e3e},{0xa640,0xa640,0xa641,0xa640},{0x16e40,0x16e40,0x16e60,0x16e40},{0x1e40,0x1e40,0x1e41,0x1e40}, +{0x16e41,0x16e41,0x16e61,0x16e41},{0xa641,0xa640,0xa641,0xa640},{0x1e41,0x1e40,0x1e41,0x1e40},{0xa642,0xa642,0xa643,0xa642}, +{0x1e42,0x1e42,0x1e43,0x1e42},{0x16e42,0x16e42,0x16e62,0x16e42},{0x1e43,0x1e42,0x1e43,0x1e42},{0x16e43,0x16e43,0x16e63,0x16e43}, +{0xa643,0xa642,0xa643,0xa642},{0x1e44,0x1e44,0x1e45,0x1e44},{0x16e44,0x16e44,0x16e64,0x16e44},{0xa644,0xa644,0xa645,0xa644}, +{0x1e45,0x1e44,0x1e45,0x1e44},{0xa645,0xa644,0xa645,0xa644},{0x16e45,0x16e45,0x16e65,0x16e45},{0x16e46,0x16e46,0x16e66,0x16e46}, +{0x1e46,0x1e46,0x1e47,0x1e46},{0xa646,0xa646,0xa647,0xa646},{0x16e47,0x16e47,0x16e67,0x16e47},{0x1e47,0x1e46,0x1e47,0x1e46}, +{0xa647,0xa646,0xa647,0xa646},{0x16e48,0x16e48,0x16e68,0x16e48},{0xa648,0xa648,0xa649,0xa648},{0x1e48,0x1e48,0x1e49,0x1e48}, +{0x16e49,0x16e49,0x16e69,0x16e49},{0xa649,0xa648,0xa649,0xa648},{0x1e49,0x1e48,0x1e49,0x1e48},{0x1e4a,0x1e4a,0x1e4b,0x1e4a}, +{0x16e4a,0x16e4a,0x16e6a,0x16e4a},{0xa64a,0xa64a,0xa64b,0xa64a},{0xa64b,0xa64a,0xa64b,0xa64a},{0x1e4b,0x1e4a,0x1e4b,0x1e4a}, +{0x16e4b,0x16e4b,0x16e6b,0x16e4b},{0x16e4c,0x16e4c,0x16e6c,0x16e4c},{0x1e4c,0x1e4c,0x1e4d,0x1e4c},{0xa64c,0xa64c,0xa64d,0xa64c}, +{0xa64d,0xa64c,0xa64d,0xa64c},{0x1e4d,0x1e4c,0x1e4d,0x1e4c},{0x16e4d,0x16e4d,0x16e6d,0x16e4d},{0xa64e,0xa64e,0xa64f,0xa64e}, +{0x16e4e,0x16e4e,0x16e6e,0x16e4e},{0x1e4e,0x1e4e,0x1e4f,0x1e4e},{0x16e4f,0x16e4f,0x16e6f,0x16e4f},{0xa64f,0xa64e,0xa64f,0xa64e}, +{0x1e4f,0x1e4e,0x1e4f,0x1e4e},{0x1e50,0x1e50,0x1e51,0x1e50},{0xa650,0xa650,0xa651,0xa650},{0x16e50,0x16e50,0x16e70,0x16e50}, +{0xa651,0xa650,0xa651,0xa650},{0x16e51,0x16e51,0x16e71,0x16e51},{0x1e51,0x1e50,0x1e51,0x1e50},{0xa652,0xa652,0xa653,0xa652}, +{0x1e52,0x1e52,0x1e53,0x1e52},{0x16e52,0x16e52,0x16e72,0x16e52},{0xa653,0xa652,0xa653,0xa652},{0x16e53,0x16e53,0x16e73,0x16e53}, +{0x1e53,0x1e52,0x1e53,0x1e52},{0x1e54,0x1e54,0x1e55,0x1e54},{0x16e54,0x16e54,0x16e74,0x16e54},{0xa654,0xa654,0xa655,0xa654}, +{0x1e55,0x1e54,0x1e55,0x1e54},{0xa655,0xa654,0xa655,0xa654},{0x16e55,0x16e55,0x16e75,0x16e55},{0x16e56,0x16e56,0x16e76,0x16e56}, +{0x1e56,0x1e56,0x1e57,0x1e56},{0xa656,0xa656,0xa657,0xa656},{0xa657,0xa656,0xa657,0xa656},{0x16e57,0x16e57,0x16e77,0x16e57}, +{0x1e57,0x1e56,0x1e57,0x1e56},{0xa658,0xa658,0xa659,0xa658},{0x16e58,0x16e58,0x16e78,0x16e58},{0x1e58,0x1e58,0x1e59,0x1e58}, +{0x16e59,0x16e59,0x16e79,0x16e59},{0xa659,0xa658,0xa659,0xa658},{0x1e59,0x1e58,0x1e59,0x1e58},{0xa65a,0xa65a,0xa65b,0xa65a}, +{0x1e5a,0x1e5a,0x1e5b,0x1e5a},{0x16e5a,0x16e5a,0x16e7a,0x16e5a},{0xa65b,0xa65a,0xa65b,0xa65a},{0x1e5b,0x1e5a,0x1e5b,0x1e5a}, +{0x16e5b,0x16e5b,0x16e7b,0x16e5b},{0x1e5c,0x1e5c,0x1e5d,0x1e5c},{0xa65c,0xa65c,0xa65d,0xa65c},{0x16e5c,0x16e5c,0x16e7c,0x16e5c}, +{0xa65d,0xa65c,0xa65d,0xa65c},{0x1e5d,0x1e5c,0x1e5d,0x1e5c},{0x16e5d,0x16e5d,0x16e7d,0x16e5d},{0x16e5e,0x16e5e,0x16e7e,0x16e5e}, +{0x1e5e,0x1e5e,0x1e5f,0x1e5e},{0xa65e,0xa65e,0xa65f,0xa65e},{0xa65f,0xa65e,0xa65f,0xa65e},{0x1e5f,0x1e5e,0x1e5f,0x1e5e}, +{0x16e5f,0x16e5f,0x16e7f,0x16e5f},{0x16e60,0x16e40,0x16e60,0x16e40},{0x1e60,0x1e60,0x1e61,0x1e60},{0xa660,0xa660,0xa661,0xa660}, +{0x1e61,0x1e60,0x1e61,0x1e60},{0xa661,0xa660,0xa661,0xa660},{0x16e61,0x16e41,0x16e61,0x16e41},{0xa662,0xa662,0xa663,0xa662}, +{0x1e62,0x1e62,0x1e63,0x1e62},{0x16e62,0x16e42,0x16e62,0x16e42},{0x16e63,0x16e43,0x16e63,0x16e43},{0x1e63,0x1e62,0x1e63,0x1e62}, +{0xa663,0xa662,0xa663,0xa662},{0x1e64,0x1e64,0x1e65,0x1e64},{0xa664,0xa664,0xa665,0xa664},{0x16e64,0x16e44,0x16e64,0x16e44}, +{0xa665,0xa664,0xa665,0xa664},{0x16e65,0x16e45,0x16e65,0x16e45},{0x1e65,0x1e64,0x1e65,0x1e64},{0xa666,0xa666,0xa667,0xa666}, +{0x1e66,0x1e66,0x1e67,0x1e66},{0x16e66,0x16e46,0x16e66,0x16e46},{0xa667,0xa666,0xa667,0xa666},{0x1e67,0x1e66,0x1e67,0x1e66}, +{0x16e67,0x16e47,0x16e67,0x16e47},{0x16e68,0x16e48,0x16e68,0x16e48},{0xa668,0xa668,0xa669,0xa668},{0x1e68,0x1e68,0x1e69,0x1e68}, +{0x1e69,0x1e68,0x1e69,0x1e68},{0x16e69,0x16e49,0x16e69,0x16e49},{0xa669,0xa668,0xa669,0xa668},{0x16e6a,0x16e4a,0x16e6a,0x16e4a}, +{0xa66a,0xa66a,0xa66b,0xa66a},{0x1e6a,0x1e6a,0x1e6b,0x1e6a},{0x1e6b,0x1e6a,0x1e6b,0x1e6a},{0x16e6b,0x16e4b,0x16e6b,0x16e4b}, +{0xa66b,0xa66a,0xa66b,0xa66a},{0x16e6c,0x16e4c,0x16e6c,0x16e4c},{0x1e6c,0x1e6c,0x1e6d,0x1e6c},{0xa66c,0xa66c,0xa66d,0xa66c}, +{0xa66d,0xa66c,0xa66d,0xa66c},{0x16e6d,0x16e4d,0x16e6d,0x16e4d},{0x1e6d,0x1e6c,0x1e6d,0x1e6c},{0x1e6e,0x1e6e,0x1e6f,0x1e6e}, +{0x16e6e,0x16e4e,0x16e6e,0x16e4e},{0x1e6f,0x1e6e,0x1e6f,0x1e6e},{0x16e6f,0x16e4f,0x16e6f,0x16e4f},{0x1e70,0x1e70,0x1e71,0x1e70}, +{0x16e70,0x16e50,0x16e70,0x16e50},{0x1e71,0x1e70,0x1e71,0x1e70},{0x16e71,0x16e51,0x16e71,0x16e51},{0x1e72,0x1e72,0x1e73,0x1e72}, +{0x16e72,0x16e52,0x16e72,0x16e52},{0x16e73,0x16e53,0x16e73,0x16e53},{0x1e73,0x1e72,0x1e73,0x1e72},{0x16e74,0x16e54,0x16e74,0x16e54}, +{0x1e74,0x1e74,0x1e75,0x1e74},{0x1e75,0x1e74,0x1e75,0x1e74},{0x16e75,0x16e55,0x16e75,0x16e55},{0x1e76,0x1e76,0x1e77,0x1e76}, +{0x16e76,0x16e56,0x16e76,0x16e56},{0x1e77,0x1e76,0x1e77,0x1e76},{0x16e77,0x16e57,0x16e77,0x16e57},{0x16e78,0x16e58,0x16e78,0x16e58}, +{0x1e78,0x1e78,0x1e79,0x1e78},{0x16e79,0x16e59,0x16e79,0x16e59},{0x1e79,0x1e78,0x1e79,0x1e78},{0x16e7a,0x16e5a,0x16e7a,0x16e5a}, +{0x1e7a,0x1e7a,0x1e7b,0x1e7a},{0x16e7b,0x16e5b,0x16e7b,0x16e5b},{0x1e7b,0x1e7a,0x1e7b,0x1e7a},{0x1e7c,0x1e7c,0x1e7d,0x1e7c}, +{0x16e7c,0x16e5c,0x16e7c,0x16e5c},{0x1e7d,0x1e7c,0x1e7d,0x1e7c},{0x16e7d,0x16e5d,0x16e7d,0x16e5d},{0x1e7e,0x1e7e,0x1e7f,0x1e7e}, +{0x16e7e,0x16e5e,0x16e7e,0x16e5e},{0x16e7f,0x16e5f,0x16e7f,0x16e5f},{0x1e7f,0x1e7e,0x1e7f,0x1e7e},{0xa680,0xa680,0xa681,0xa680}, +{0x1e80,0x1e80,0x1e81,0x1e80},{0x1e81,0x1e80,0x1e81,0x1e80},{0xa681,0xa680,0xa681,0xa680},{0xa682,0xa682,0xa683,0xa682}, +{0x1e82,0x1e82,0x1e83,0x1e82},{0xa683,0xa682,0xa683,0xa682},{0x1e83,0x1e82,0x1e83,0x1e82},{0x1e84,0x1e84,0x1e85,0x1e84}, +{0xa684,0xa684,0xa685,0xa684},{0x1e85,0x1e84,0x1e85,0x1e84},{0xa685,0xa684,0xa685,0xa684},{0xa686,0xa686,0xa687,0xa686}, +{0x1e86,0x1e86,0x1e87,0x1e86},{0xa687,0xa686,0xa687,0xa686},{0x1e87,0x1e86,0x1e87,0x1e86},{0x1e88,0x1e88,0x1e89,0x1e88}, +{0xa688,0xa688,0xa689,0xa688},{0x1e89,0x1e88,0x1e89,0x1e88},{0xa689,0xa688,0xa689,0xa688},{0x1e8a,0x1e8a,0x1e8b,0x1e8a}, +{0xa68a,0xa68a,0xa68b,0xa68a},{0x1e8b,0x1e8a,0x1e8b,0x1e8a},{0xa68b,0xa68a,0xa68b,0xa68a},{0xa68c,0xa68c,0xa68d,0xa68c}, +{0x1e8c,0x1e8c,0x1e8d,0x1e8c},{0x1e8d,0x1e8c,0x1e8d,0x1e8c},{0xa68d,0xa68c,0xa68d,0xa68c},{0xa68e,0xa68e,0xa68f,0xa68e}, {0x1e8e,0x1e8e,0x1e8f,0x1e8e},{0x1e8f,0x1e8e,0x1e8f,0x1e8e},{0xa68f,0xa68e,0xa68f,0xa68e},{0xa690,0xa690,0xa691,0xa690}, -{0x1e90,0x1e90,0x1e91,0x1e90},{0xa691,0xa690,0xa691,0xa690},{0x1e91,0x1e90,0x1e91,0x1e90},{0x1e92,0x1e92,0x1e93,0x1e92}, -{0xa692,0xa692,0xa693,0xa692},{0xa693,0xa692,0xa693,0xa692},{0x1e93,0x1e92,0x1e93,0x1e92},{0xa694,0xa694,0xa695,0xa694}, -{0x1e94,0x1e94,0x1e95,0x1e94},{0x1e95,0x1e94,0x1e95,0x1e94},{0xa695,0xa694,0xa695,0xa694},{0xa696,0xa696,0xa697,0xa696}, +{0x1e90,0x1e90,0x1e91,0x1e90},{0xa691,0xa690,0xa691,0xa690},{0x1e91,0x1e90,0x1e91,0x1e90},{0xa692,0xa692,0xa693,0xa692}, +{0x1e92,0x1e92,0x1e93,0x1e92},{0x1e93,0x1e92,0x1e93,0x1e92},{0xa693,0xa692,0xa693,0xa692},{0x1e94,0x1e94,0x1e95,0x1e94}, +{0xa694,0xa694,0xa695,0xa694},{0xa695,0xa694,0xa695,0xa694},{0x1e95,0x1e94,0x1e95,0x1e94},{0xa696,0xa696,0xa697,0xa696}, {0xa697,0xa696,0xa697,0xa696},{0xa698,0xa698,0xa699,0xa698},{0xa699,0xa698,0xa699,0xa698},{0xa69a,0xa69a,0xa69b,0xa69a}, {0x1e9b,0x1e60,0x1e9b,0x1e60},{0xa69b,0xa69a,0xa69b,0xa69a},{0x1e9e,0x1e9e,0x00df,0x1e9e},{0x1ea0,0x1ea0,0x1ea1,0x1ea0}, {0x1ea1,0x1ea0,0x1ea1,0x1ea0},{0x1ea2,0x1ea2,0x1ea3,0x1ea2},{0x1ea3,0x1ea2,0x1ea3,0x1ea2},{0x1ea4,0x1ea4,0x1ea5,0x1ea4}, @@ -540,93 +617,98 @@ const char32_t unicode_case_tab[][4]={ {0x1f11,0x1f19,0x1f11,0x1f19},{0x1f12,0x1f1a,0x1f12,0x1f1a},{0x1f13,0x1f1b,0x1f13,0x1f1b},{0x1f14,0x1f1c,0x1f14,0x1f1c}, {0x1f15,0x1f1d,0x1f15,0x1f1d},{0x1f18,0x1f18,0x1f10,0x1f18},{0x1f19,0x1f19,0x1f11,0x1f19},{0x1f1a,0x1f1a,0x1f12,0x1f1a}, {0x1f1b,0x1f1b,0x1f13,0x1f1b},{0x1f1c,0x1f1c,0x1f14,0x1f1c},{0x1f1d,0x1f1d,0x1f15,0x1f1d},{0x1f20,0x1f28,0x1f20,0x1f28}, -{0x1f21,0x1f29,0x1f21,0x1f29},{0xff21,0xff21,0xff41,0xff21},{0xff22,0xff22,0xff42,0xff22},{0xa722,0xa722,0xa723,0xa722}, -{0x1f22,0x1f2a,0x1f22,0x1f2a},{0x1f23,0x1f2b,0x1f23,0x1f2b},{0xa723,0xa722,0xa723,0xa722},{0xff23,0xff23,0xff43,0xff23}, -{0xa724,0xa724,0xa725,0xa724},{0xff24,0xff24,0xff44,0xff24},{0x1f24,0x1f2c,0x1f24,0x1f2c},{0xff25,0xff25,0xff45,0xff25}, -{0x1f25,0x1f2d,0x1f25,0x1f2d},{0xa725,0xa724,0xa725,0xa724},{0x1f26,0x1f2e,0x1f26,0x1f2e},{0xa726,0xa726,0xa727,0xa726}, -{0xff26,0xff26,0xff46,0xff26},{0xff27,0xff27,0xff47,0xff27},{0x1f27,0x1f2f,0x1f27,0x1f2f},{0xa727,0xa726,0xa727,0xa726}, +{0xff21,0xff21,0xff41,0xff21},{0x1f21,0x1f29,0x1f21,0x1f29},{0xa722,0xa722,0xa723,0xa722},{0x1f22,0x1f2a,0x1f22,0x1f2a}, +{0xff22,0xff22,0xff42,0xff22},{0xff23,0xff23,0xff43,0xff23},{0x1f23,0x1f2b,0x1f23,0x1f2b},{0xa723,0xa722,0xa723,0xa722}, +{0x1f24,0x1f2c,0x1f24,0x1f2c},{0xa724,0xa724,0xa725,0xa724},{0xff24,0xff24,0xff44,0xff24},{0x1f25,0x1f2d,0x1f25,0x1f2d}, +{0xa725,0xa724,0xa725,0xa724},{0xff25,0xff25,0xff45,0xff25},{0xa726,0xa726,0xa727,0xa726},{0x1f26,0x1f2e,0x1f26,0x1f2e}, +{0xff26,0xff26,0xff46,0xff26},{0x1f27,0x1f2f,0x1f27,0x1f2f},{0xa727,0xa726,0xa727,0xa726},{0xff27,0xff27,0xff47,0xff27}, {0xff28,0xff28,0xff48,0xff28},{0xa728,0xa728,0xa729,0xa728},{0x1f28,0x1f28,0x1f20,0x1f28},{0x1f29,0x1f29,0x1f21,0x1f29}, -{0xa729,0xa728,0xa729,0xa728},{0xff29,0xff29,0xff49,0xff29},{0x1f2a,0x1f2a,0x1f22,0x1f2a},{0xff2a,0xff2a,0xff4a,0xff2a}, -{0xa72a,0xa72a,0xa72b,0xa72a},{0xa72b,0xa72a,0xa72b,0xa72a},{0x1f2b,0x1f2b,0x1f23,0x1f2b},{0xff2b,0xff2b,0xff4b,0xff2b}, -{0xff2c,0xff2c,0xff4c,0xff2c},{0x1f2c,0x1f2c,0x1f24,0x1f2c},{0xa72c,0xa72c,0xa72d,0xa72c},{0xff2d,0xff2d,0xff4d,0xff2d}, -{0x1f2d,0x1f2d,0x1f25,0x1f2d},{0xa72d,0xa72c,0xa72d,0xa72c},{0xff2e,0xff2e,0xff4e,0xff2e},{0xa72e,0xa72e,0xa72f,0xa72e}, -{0x1f2e,0x1f2e,0x1f26,0x1f2e},{0xff2f,0xff2f,0xff4f,0xff2f},{0xa72f,0xa72e,0xa72f,0xa72e},{0x1f2f,0x1f2f,0x1f27,0x1f2f}, +{0xa729,0xa728,0xa729,0xa728},{0xff29,0xff29,0xff49,0xff29},{0xff2a,0xff2a,0xff4a,0xff2a},{0x1f2a,0x1f2a,0x1f22,0x1f2a}, +{0xa72a,0xa72a,0xa72b,0xa72a},{0x1f2b,0x1f2b,0x1f23,0x1f2b},{0xa72b,0xa72a,0xa72b,0xa72a},{0xff2b,0xff2b,0xff4b,0xff2b}, +{0x1f2c,0x1f2c,0x1f24,0x1f2c},{0xff2c,0xff2c,0xff4c,0xff2c},{0xa72c,0xa72c,0xa72d,0xa72c},{0xff2d,0xff2d,0xff4d,0xff2d}, +{0x1f2d,0x1f2d,0x1f25,0x1f2d},{0xa72d,0xa72c,0xa72d,0xa72c},{0xa72e,0xa72e,0xa72f,0xa72e},{0xff2e,0xff2e,0xff4e,0xff2e}, +{0x1f2e,0x1f2e,0x1f26,0x1f2e},{0xff2f,0xff2f,0xff4f,0xff2f},{0x1f2f,0x1f2f,0x1f27,0x1f2f},{0xa72f,0xa72e,0xa72f,0xa72e}, {0x1f30,0x1f38,0x1f30,0x1f38},{0xff30,0xff30,0xff50,0xff30},{0x1f31,0x1f39,0x1f31,0x1f39},{0xff31,0xff31,0xff51,0xff31}, -{0xff32,0xff32,0xff52,0xff32},{0xa732,0xa732,0xa733,0xa732},{0x1f32,0x1f3a,0x1f32,0x1f3a},{0xff33,0xff33,0xff53,0xff33}, -{0xa733,0xa732,0xa733,0xa732},{0x1f33,0x1f3b,0x1f33,0x1f3b},{0x1f34,0x1f3c,0x1f34,0x1f3c},{0xa734,0xa734,0xa735,0xa734}, -{0xff34,0xff34,0xff54,0xff34},{0xff35,0xff35,0xff55,0xff35},{0x1f35,0x1f3d,0x1f35,0x1f3d},{0xa735,0xa734,0xa735,0xa734}, -{0xa736,0xa736,0xa737,0xa736},{0x1f36,0x1f3e,0x1f36,0x1f3e},{0xff36,0xff36,0xff56,0xff36},{0xa737,0xa736,0xa737,0xa736}, -{0xff37,0xff37,0xff57,0xff37},{0x1f37,0x1f3f,0x1f37,0x1f3f},{0xa738,0xa738,0xa739,0xa738},{0x1f38,0x1f38,0x1f30,0x1f38}, -{0xff38,0xff38,0xff58,0xff38},{0xff39,0xff39,0xff59,0xff39},{0xa739,0xa738,0xa739,0xa738},{0x1f39,0x1f39,0x1f31,0x1f39}, -{0x1f3a,0x1f3a,0x1f32,0x1f3a},{0xff3a,0xff3a,0xff5a,0xff3a},{0xa73a,0xa73a,0xa73b,0xa73a},{0x1f3b,0x1f3b,0x1f33,0x1f3b}, -{0xa73b,0xa73a,0xa73b,0xa73a},{0x1f3c,0x1f3c,0x1f34,0x1f3c},{0xa73c,0xa73c,0xa73d,0xa73c},{0xa73d,0xa73c,0xa73d,0xa73c}, -{0x1f3d,0x1f3d,0x1f35,0x1f3d},{0x1f3e,0x1f3e,0x1f36,0x1f3e},{0xa73e,0xa73e,0xa73f,0xa73e},{0xa73f,0xa73e,0xa73f,0xa73e}, -{0x1f3f,0x1f3f,0x1f37,0x1f3f},{0xa740,0xa740,0xa741,0xa740},{0x1f40,0x1f48,0x1f40,0x1f48},{0xa741,0xa740,0xa741,0xa740}, -{0xff41,0xff21,0xff41,0xff21},{0x1f41,0x1f49,0x1f41,0x1f49},{0x1f42,0x1f4a,0x1f42,0x1f4a},{0xff42,0xff22,0xff42,0xff22}, -{0xa742,0xa742,0xa743,0xa742},{0xff43,0xff23,0xff43,0xff23},{0x1f43,0x1f4b,0x1f43,0x1f4b},{0xa743,0xa742,0xa743,0xa742}, -{0xff44,0xff24,0xff44,0xff24},{0x1f44,0x1f4c,0x1f44,0x1f4c},{0xa744,0xa744,0xa745,0xa744},{0xff45,0xff25,0xff45,0xff25}, -{0xa745,0xa744,0xa745,0xa744},{0x1f45,0x1f4d,0x1f45,0x1f4d},{0xff46,0xff26,0xff46,0xff26},{0xa746,0xa746,0xa747,0xa746}, -{0xa747,0xa746,0xa747,0xa746},{0xff47,0xff27,0xff47,0xff27},{0x1f48,0x1f48,0x1f40,0x1f48},{0xff48,0xff28,0xff48,0xff28}, -{0xa748,0xa748,0xa749,0xa748},{0xff49,0xff29,0xff49,0xff29},{0xa749,0xa748,0xa749,0xa748},{0x1f49,0x1f49,0x1f41,0x1f49}, -{0xff4a,0xff2a,0xff4a,0xff2a},{0x1f4a,0x1f4a,0x1f42,0x1f4a},{0xa74a,0xa74a,0xa74b,0xa74a},{0xa74b,0xa74a,0xa74b,0xa74a}, -{0x1f4b,0x1f4b,0x1f43,0x1f4b},{0xff4b,0xff2b,0xff4b,0xff2b},{0x1f4c,0x1f4c,0x1f44,0x1f4c},{0xff4c,0xff2c,0xff4c,0xff2c}, -{0xa74c,0xa74c,0xa74d,0xa74c},{0xff4d,0xff2d,0xff4d,0xff2d},{0x1f4d,0x1f4d,0x1f45,0x1f4d},{0xa74d,0xa74c,0xa74d,0xa74c}, -{0xff4e,0xff2e,0xff4e,0xff2e},{0xa74e,0xa74e,0xa74f,0xa74e},{0xff4f,0xff2f,0xff4f,0xff2f},{0xa74f,0xa74e,0xa74f,0xa74e}, -{0xa750,0xa750,0xa751,0xa750},{0xff50,0xff30,0xff50,0xff30},{0xff51,0xff31,0xff51,0xff31},{0xa751,0xa750,0xa751,0xa750}, -{0x1f51,0x1f59,0x1f51,0x1f59},{0xa752,0xa752,0xa753,0xa752},{0xff52,0xff32,0xff52,0xff32},{0x1f53,0x1f5b,0x1f53,0x1f5b}, +{0xff32,0xff32,0xff52,0xff32},{0x1f32,0x1f3a,0x1f32,0x1f3a},{0xa732,0xa732,0xa733,0xa732},{0xa733,0xa732,0xa733,0xa732}, +{0x1f33,0x1f3b,0x1f33,0x1f3b},{0xff33,0xff33,0xff53,0xff33},{0xff34,0xff34,0xff54,0xff34},{0x1f34,0x1f3c,0x1f34,0x1f3c}, +{0xa734,0xa734,0xa735,0xa734},{0xa735,0xa734,0xa735,0xa734},{0x1f35,0x1f3d,0x1f35,0x1f3d},{0xff35,0xff35,0xff55,0xff35}, +{0xa736,0xa736,0xa737,0xa736},{0xff36,0xff36,0xff56,0xff36},{0x1f36,0x1f3e,0x1f36,0x1f3e},{0x1f37,0x1f3f,0x1f37,0x1f3f}, +{0xff37,0xff37,0xff57,0xff37},{0xa737,0xa736,0xa737,0xa736},{0x1f38,0x1f38,0x1f30,0x1f38},{0xff38,0xff38,0xff58,0xff38}, +{0xa738,0xa738,0xa739,0xa738},{0x1f39,0x1f39,0x1f31,0x1f39},{0xa739,0xa738,0xa739,0xa738},{0xff39,0xff39,0xff59,0xff39}, +{0xa73a,0xa73a,0xa73b,0xa73a},{0xff3a,0xff3a,0xff5a,0xff3a},{0x1f3a,0x1f3a,0x1f32,0x1f3a},{0xa73b,0xa73a,0xa73b,0xa73a}, +{0x1f3b,0x1f3b,0x1f33,0x1f3b},{0x1f3c,0x1f3c,0x1f34,0x1f3c},{0xa73c,0xa73c,0xa73d,0xa73c},{0xa73d,0xa73c,0xa73d,0xa73c}, +{0x1f3d,0x1f3d,0x1f35,0x1f3d},{0x1f3e,0x1f3e,0x1f36,0x1f3e},{0xa73e,0xa73e,0xa73f,0xa73e},{0x1f3f,0x1f3f,0x1f37,0x1f3f}, +{0xa73f,0xa73e,0xa73f,0xa73e},{0xa740,0xa740,0xa741,0xa740},{0x1f40,0x1f48,0x1f40,0x1f48},{0xa741,0xa740,0xa741,0xa740}, +{0xff41,0xff21,0xff41,0xff21},{0x1f41,0x1f49,0x1f41,0x1f49},{0xa742,0xa742,0xa743,0xa742},{0xff42,0xff22,0xff42,0xff22}, +{0x1f42,0x1f4a,0x1f42,0x1f4a},{0xff43,0xff23,0xff43,0xff23},{0xa743,0xa742,0xa743,0xa742},{0x1f43,0x1f4b,0x1f43,0x1f4b}, +{0xff44,0xff24,0xff44,0xff24},{0x1f44,0x1f4c,0x1f44,0x1f4c},{0xa744,0xa744,0xa745,0xa744},{0xa745,0xa744,0xa745,0xa744}, +{0xff45,0xff25,0xff45,0xff25},{0x1f45,0x1f4d,0x1f45,0x1f4d},{0xff46,0xff26,0xff46,0xff26},{0xa746,0xa746,0xa747,0xa746}, +{0xa747,0xa746,0xa747,0xa746},{0xff47,0xff27,0xff47,0xff27},{0xa748,0xa748,0xa749,0xa748},{0x1f48,0x1f48,0x1f40,0x1f48}, +{0xff48,0xff28,0xff48,0xff28},{0xff49,0xff29,0xff49,0xff29},{0x1f49,0x1f49,0x1f41,0x1f49},{0xa749,0xa748,0xa749,0xa748}, +{0xff4a,0xff2a,0xff4a,0xff2a},{0xa74a,0xa74a,0xa74b,0xa74a},{0x1f4a,0x1f4a,0x1f42,0x1f4a},{0x1f4b,0x1f4b,0x1f43,0x1f4b}, +{0xa74b,0xa74a,0xa74b,0xa74a},{0xff4b,0xff2b,0xff4b,0xff2b},{0xa74c,0xa74c,0xa74d,0xa74c},{0x1f4c,0x1f4c,0x1f44,0x1f4c}, +{0xff4c,0xff2c,0xff4c,0xff2c},{0x1f4d,0x1f4d,0x1f45,0x1f4d},{0xff4d,0xff2d,0xff4d,0xff2d},{0xa74d,0xa74c,0xa74d,0xa74c}, +{0xff4e,0xff2e,0xff4e,0xff2e},{0xa74e,0xa74e,0xa74f,0xa74e},{0xa74f,0xa74e,0xa74f,0xa74e},{0xff4f,0xff2f,0xff4f,0xff2f}, +{0xa750,0xa750,0xa751,0xa750},{0xff50,0xff30,0xff50,0xff30},{0x1f51,0x1f59,0x1f51,0x1f59},{0xff51,0xff31,0xff51,0xff31}, +{0xa751,0xa750,0xa751,0xa750},{0xa752,0xa752,0xa753,0xa752},{0xff52,0xff32,0xff52,0xff32},{0x1f53,0x1f5b,0x1f53,0x1f5b}, {0xff53,0xff33,0xff53,0xff33},{0xa753,0xa752,0xa753,0xa752},{0xff54,0xff34,0xff54,0xff34},{0xa754,0xa754,0xa755,0xa754}, -{0xff55,0xff35,0xff55,0xff35},{0x1f55,0x1f5d,0x1f55,0x1f5d},{0xa755,0xa754,0xa755,0xa754},{0xff56,0xff36,0xff56,0xff36}, -{0xa756,0xa756,0xa757,0xa756},{0x1f57,0x1f5f,0x1f57,0x1f5f},{0xff57,0xff37,0xff57,0xff37},{0xa757,0xa756,0xa757,0xa756}, +{0xa755,0xa754,0xa755,0xa754},{0x1f55,0x1f5d,0x1f55,0x1f5d},{0xff55,0xff35,0xff55,0xff35},{0xff56,0xff36,0xff56,0xff36}, +{0xa756,0xa756,0xa757,0xa756},{0xff57,0xff37,0xff57,0xff37},{0x1f57,0x1f5f,0x1f57,0x1f5f},{0xa757,0xa756,0xa757,0xa756}, {0xa758,0xa758,0xa759,0xa758},{0xff58,0xff38,0xff58,0xff38},{0xff59,0xff39,0xff59,0xff39},{0xa759,0xa758,0xa759,0xa758}, {0x1f59,0x1f59,0x1f51,0x1f59},{0xff5a,0xff3a,0xff5a,0xff3a},{0xa75a,0xa75a,0xa75b,0xa75a},{0x1f5b,0x1f5b,0x1f53,0x1f5b}, -{0xa75b,0xa75a,0xa75b,0xa75a},{0xa75c,0xa75c,0xa75d,0xa75c},{0xa75d,0xa75c,0xa75d,0xa75c},{0x1f5d,0x1f5d,0x1f55,0x1f5d}, -{0xa75e,0xa75e,0xa75f,0xa75e},{0xa75f,0xa75e,0xa75f,0xa75e},{0x1f5f,0x1f5f,0x1f57,0x1f5f},{0x1f60,0x1f68,0x1f60,0x1f68}, -{0xa760,0xa760,0xa761,0xa760},{0x1f61,0x1f69,0x1f61,0x1f69},{0xa761,0xa760,0xa761,0xa760},{0xa762,0xa762,0xa763,0xa762}, -{0x1f62,0x1f6a,0x1f62,0x1f6a},{0x1f63,0x1f6b,0x1f63,0x1f6b},{0xa763,0xa762,0xa763,0xa762},{0xa764,0xa764,0xa765,0xa764}, -{0x1f64,0x1f6c,0x1f64,0x1f6c},{0x1f65,0x1f6d,0x1f65,0x1f6d},{0xa765,0xa764,0xa765,0xa764},{0xa766,0xa766,0xa767,0xa766}, -{0x1f66,0x1f6e,0x1f66,0x1f6e},{0x1f67,0x1f6f,0x1f67,0x1f6f},{0xa767,0xa766,0xa767,0xa766},{0x1f68,0x1f68,0x1f60,0x1f68}, -{0xa768,0xa768,0xa769,0xa768},{0xa769,0xa768,0xa769,0xa768},{0x1f69,0x1f69,0x1f61,0x1f69},{0xa76a,0xa76a,0xa76b,0xa76a}, -{0x1f6a,0x1f6a,0x1f62,0x1f6a},{0x1f6b,0x1f6b,0x1f63,0x1f6b},{0xa76b,0xa76a,0xa76b,0xa76a},{0x1f6c,0x1f6c,0x1f64,0x1f6c}, -{0xa76c,0xa76c,0xa76d,0xa76c},{0xa76d,0xa76c,0xa76d,0xa76c},{0x1f6d,0x1f6d,0x1f65,0x1f6d},{0xa76e,0xa76e,0xa76f,0xa76e}, +{0xa75b,0xa75a,0xa75b,0xa75a},{0xa75c,0xa75c,0xa75d,0xa75c},{0x1f5d,0x1f5d,0x1f55,0x1f5d},{0xa75d,0xa75c,0xa75d,0xa75c}, +{0xa75e,0xa75e,0xa75f,0xa75e},{0x1f5f,0x1f5f,0x1f57,0x1f5f},{0xa75f,0xa75e,0xa75f,0xa75e},{0x1f60,0x1f68,0x1f60,0x1f68}, +{0xa760,0xa760,0xa761,0xa760},{0xa761,0xa760,0xa761,0xa760},{0x1f61,0x1f69,0x1f61,0x1f69},{0xa762,0xa762,0xa763,0xa762}, +{0x1f62,0x1f6a,0x1f62,0x1f6a},{0x1f63,0x1f6b,0x1f63,0x1f6b},{0xa763,0xa762,0xa763,0xa762},{0x1f64,0x1f6c,0x1f64,0x1f6c}, +{0xa764,0xa764,0xa765,0xa764},{0xa765,0xa764,0xa765,0xa764},{0x1f65,0x1f6d,0x1f65,0x1f6d},{0xa766,0xa766,0xa767,0xa766}, +{0x1f66,0x1f6e,0x1f66,0x1f6e},{0xa767,0xa766,0xa767,0xa766},{0x1f67,0x1f6f,0x1f67,0x1f6f},{0xa768,0xa768,0xa769,0xa768}, +{0x1f68,0x1f68,0x1f60,0x1f68},{0x1f69,0x1f69,0x1f61,0x1f69},{0xa769,0xa768,0xa769,0xa768},{0x1f6a,0x1f6a,0x1f62,0x1f6a}, +{0xa76a,0xa76a,0xa76b,0xa76a},{0x1f6b,0x1f6b,0x1f63,0x1f6b},{0xa76b,0xa76a,0xa76b,0xa76a},{0xa76c,0xa76c,0xa76d,0xa76c}, +{0x1f6c,0x1f6c,0x1f64,0x1f6c},{0xa76d,0xa76c,0xa76d,0xa76c},{0x1f6d,0x1f6d,0x1f65,0x1f6d},{0xa76e,0xa76e,0xa76f,0xa76e}, {0x1f6e,0x1f6e,0x1f66,0x1f6e},{0x1f6f,0x1f6f,0x1f67,0x1f6f},{0xa76f,0xa76e,0xa76f,0xa76e},{0x1f70,0x1fba,0x1f70,0x1fba}, {0x1f71,0x1fbb,0x1f71,0x1fbb},{0x1f72,0x1fc8,0x1f72,0x1fc8},{0x1f73,0x1fc9,0x1f73,0x1fc9},{0x1f74,0x1fca,0x1f74,0x1fca}, {0x1f75,0x1fcb,0x1f75,0x1fcb},{0x1f76,0x1fda,0x1f76,0x1fda},{0x1f77,0x1fdb,0x1f77,0x1fdb},{0x1f78,0x1ff8,0x1f78,0x1ff8}, -{0xa779,0xa779,0xa77a,0xa779},{0x1f79,0x1ff9,0x1f79,0x1ff9},{0x1f7a,0x1fea,0x1f7a,0x1fea},{0xa77a,0xa779,0xa77a,0xa779}, -{0xa77b,0xa77b,0xa77c,0xa77b},{0x1f7b,0x1feb,0x1f7b,0x1feb},{0xa77c,0xa77b,0xa77c,0xa77b},{0x1f7c,0x1ffa,0x1f7c,0x1ffa}, -{0x1f7d,0x1ffb,0x1f7d,0x1ffb},{0xa77d,0xa77d,0x1d79,0xa77d},{0xa77e,0xa77e,0xa77f,0xa77e},{0xa77f,0xa77e,0xa77f,0xa77e}, -{0xa780,0xa780,0xa781,0xa780},{0x1f80,0x1f88,0x1f80,0x1f88},{0xa781,0xa780,0xa781,0xa780},{0x1f81,0x1f89,0x1f81,0x1f89}, -{0x1f82,0x1f8a,0x1f82,0x1f8a},{0xa782,0xa782,0xa783,0xa782},{0x1f83,0x1f8b,0x1f83,0x1f8b},{0xa783,0xa782,0xa783,0xa782}, +{0xa779,0xa779,0xa77a,0xa779},{0x1f79,0x1ff9,0x1f79,0x1ff9},{0xa77a,0xa779,0xa77a,0xa779},{0x1f7a,0x1fea,0x1f7a,0x1fea}, +{0x1f7b,0x1feb,0x1f7b,0x1feb},{0xa77b,0xa77b,0xa77c,0xa77b},{0x1f7c,0x1ffa,0x1f7c,0x1ffa},{0xa77c,0xa77b,0xa77c,0xa77b}, +{0xa77d,0xa77d,0x1d79,0xa77d},{0x1f7d,0x1ffb,0x1f7d,0x1ffb},{0xa77e,0xa77e,0xa77f,0xa77e},{0xa77f,0xa77e,0xa77f,0xa77e}, +{0x1f80,0x1f88,0x1f80,0x1f88},{0xa780,0xa780,0xa781,0xa780},{0x1f81,0x1f89,0x1f81,0x1f89},{0xa781,0xa780,0xa781,0xa780}, +{0x1f82,0x1f8a,0x1f82,0x1f8a},{0xa782,0xa782,0xa783,0xa782},{0xa783,0xa782,0xa783,0xa782},{0x1f83,0x1f8b,0x1f83,0x1f8b}, {0xa784,0xa784,0xa785,0xa784},{0x1f84,0x1f8c,0x1f84,0x1f8c},{0xa785,0xa784,0xa785,0xa784},{0x1f85,0x1f8d,0x1f85,0x1f8d}, -{0x1f86,0x1f8e,0x1f86,0x1f8e},{0xa786,0xa786,0xa787,0xa786},{0x1f87,0x1f8f,0x1f87,0x1f8f},{0xa787,0xa786,0xa787,0xa786}, -{0x1f88,0x1f88,0x1f80,0x1f88},{0x1f89,0x1f89,0x1f81,0x1f89},{0x1f8a,0x1f8a,0x1f82,0x1f8a},{0x1f8b,0x1f8b,0x1f83,0x1f8b}, -{0xa78b,0xa78b,0xa78c,0xa78b},{0x1f8c,0x1f8c,0x1f84,0x1f8c},{0xa78c,0xa78b,0xa78c,0xa78b},{0xa78d,0xa78d,0x0265,0xa78d}, -{0x1f8d,0x1f8d,0x1f85,0x1f8d},{0x1f8e,0x1f8e,0x1f86,0x1f8e},{0x1f8f,0x1f8f,0x1f87,0x1f8f},{0x1f90,0x1f98,0x1f90,0x1f98}, -{0xa790,0xa790,0xa791,0xa790},{0x1f91,0x1f99,0x1f91,0x1f99},{0xa791,0xa790,0xa791,0xa790},{0x1f92,0x1f9a,0x1f92,0x1f9a}, -{0xa792,0xa792,0xa793,0xa792},{0xa793,0xa792,0xa793,0xa792},{0x1f93,0x1f9b,0x1f93,0x1f9b},{0x1f94,0x1f9c,0x1f94,0x1f9c}, -{0x1f95,0x1f9d,0x1f95,0x1f9d},{0x1f96,0x1f9e,0x1f96,0x1f9e},{0xa796,0xa796,0xa797,0xa796},{0x1f97,0x1f9f,0x1f97,0x1f9f}, -{0xa797,0xa796,0xa797,0xa796},{0x1f98,0x1f98,0x1f90,0x1f98},{0xa798,0xa798,0xa799,0xa798},{0xa799,0xa798,0xa799,0xa798}, -{0x1f99,0x1f99,0x1f91,0x1f99},{0xa79a,0xa79a,0xa79b,0xa79a},{0x1f9a,0x1f9a,0x1f92,0x1f9a},{0x1f9b,0x1f9b,0x1f93,0x1f9b}, -{0xa79b,0xa79a,0xa79b,0xa79a},{0x1f9c,0x1f9c,0x1f94,0x1f9c},{0xa79c,0xa79c,0xa79d,0xa79c},{0xa79d,0xa79c,0xa79d,0xa79c}, -{0x1f9d,0x1f9d,0x1f95,0x1f9d},{0xa79e,0xa79e,0xa79f,0xa79e},{0x1f9e,0x1f9e,0x1f96,0x1f9e},{0xa79f,0xa79e,0xa79f,0xa79e}, -{0x1f9f,0x1f9f,0x1f97,0x1f9f},{0x1fa0,0x1fa8,0x1fa0,0x1fa8},{0xa7a0,0xa7a0,0xa7a1,0xa7a0},{0xa7a1,0xa7a0,0xa7a1,0xa7a0}, -{0x1fa1,0x1fa9,0x1fa1,0x1fa9},{0x1fa2,0x1faa,0x1fa2,0x1faa},{0xa7a2,0xa7a2,0xa7a3,0xa7a2},{0x1fa3,0x1fab,0x1fa3,0x1fab}, -{0xa7a3,0xa7a2,0xa7a3,0xa7a2},{0x1fa4,0x1fac,0x1fa4,0x1fac},{0xa7a4,0xa7a4,0xa7a5,0xa7a4},{0x1fa5,0x1fad,0x1fa5,0x1fad}, -{0xa7a5,0xa7a4,0xa7a5,0xa7a4},{0xa7a6,0xa7a6,0xa7a7,0xa7a6},{0x1fa6,0x1fae,0x1fa6,0x1fae},{0xa7a7,0xa7a6,0xa7a7,0xa7a6}, -{0x1fa7,0x1faf,0x1fa7,0x1faf},{0x1fa8,0x1fa8,0x1fa0,0x1fa8},{0xa7a8,0xa7a8,0xa7a9,0xa7a8},{0x1fa9,0x1fa9,0x1fa1,0x1fa9}, -{0xa7a9,0xa7a8,0xa7a9,0xa7a8},{0x1faa,0x1faa,0x1fa2,0x1faa},{0xa7aa,0xa7aa,0x0266,0xa7aa},{0xa7ab,0xa7ab,0x025c,0xa7ab}, -{0x1fab,0x1fab,0x1fa3,0x1fab},{0xa7ac,0xa7ac,0x0261,0xa7ac},{0x1fac,0x1fac,0x1fa4,0x1fac},{0x1fad,0x1fad,0x1fa5,0x1fad}, -{0xa7ad,0xa7ad,0x026c,0xa7ad},{0x1fae,0x1fae,0x1fa6,0x1fae},{0x1faf,0x1faf,0x1fa7,0x1faf},{0xa7b0,0xa7b0,0x029e,0xa7b0}, -{0x1fb0,0x1fb8,0x1fb0,0x1fb8},{0x1fb1,0x1fb9,0x1fb1,0x1fb9},{0xa7b1,0xa7b1,0x0287,0xa7b1},{0xa7b2,0xa7b2,0x029d,0xa7b2}, -{0x1fb3,0x1fbc,0x1fb3,0x1fbc},{0xa7b3,0xa7b3,0xab53,0xa7b3},{0xa7b4,0xa7b4,0xa7b5,0xa7b4},{0xa7b5,0xa7b4,0xa7b5,0xa7b4}, -{0xa7b6,0xa7b6,0xa7b7,0xa7b6},{0xa7b7,0xa7b6,0xa7b7,0xa7b6},{0x1fb8,0x1fb8,0x1fb0,0x1fb8},{0x1fb9,0x1fb9,0x1fb1,0x1fb9}, -{0x1fba,0x1fba,0x1f70,0x1fba},{0x1fbb,0x1fbb,0x1f71,0x1fbb},{0x1fbc,0x1fbc,0x1fb3,0x1fbc},{0x1fbe,0x0399,0x1fbe,0x0399}, -{0x1fc3,0x1fcc,0x1fc3,0x1fcc},{0x1fc8,0x1fc8,0x1f72,0x1fc8},{0x1fc9,0x1fc9,0x1f73,0x1fc9},{0x1fca,0x1fca,0x1f74,0x1fca}, -{0x1fcb,0x1fcb,0x1f75,0x1fcb},{0x1fcc,0x1fcc,0x1fc3,0x1fcc},{0x1fd0,0x1fd8,0x1fd0,0x1fd8},{0x1fd1,0x1fd9,0x1fd1,0x1fd9}, -{0x1fd8,0x1fd8,0x1fd0,0x1fd8},{0x1fd9,0x1fd9,0x1fd1,0x1fd9},{0x1fda,0x1fda,0x1f76,0x1fda},{0x1fdb,0x1fdb,0x1f77,0x1fdb}, -{0x1fe0,0x1fe8,0x1fe0,0x1fe8},{0x1fe1,0x1fe9,0x1fe1,0x1fe9},{0x1fe5,0x1fec,0x1fe5,0x1fec},{0x1fe8,0x1fe8,0x1fe0,0x1fe8}, -{0x1fe9,0x1fe9,0x1fe1,0x1fe9},{0x1fea,0x1fea,0x1f7a,0x1fea},{0x1feb,0x1feb,0x1f7b,0x1feb},{0x1fec,0x1fec,0x1fe5,0x1fec}, -{0x1ff3,0x1ffc,0x1ff3,0x1ffc},{0x1ff8,0x1ff8,0x1f78,0x1ff8},{0x1ff9,0x1ff9,0x1f79,0x1ff9},{0x1ffa,0x1ffa,0x1f7c,0x1ffa}, -{0x1ffb,0x1ffb,0x1f7d,0x1ffb},{0x1ffc,0x1ffc,0x1ff3,0x1ffc},{0,0,0,0}}; +{0xa786,0xa786,0xa787,0xa786},{0x1f86,0x1f8e,0x1f86,0x1f8e},{0xa787,0xa786,0xa787,0xa786},{0x1f87,0x1f8f,0x1f87,0x1f8f}, +{0x1f88,0x1f88,0x1f80,0x1f88},{0x1f89,0x1f89,0x1f81,0x1f89},{0x1f8a,0x1f8a,0x1f82,0x1f8a},{0xa78b,0xa78b,0xa78c,0xa78b}, +{0x1f8b,0x1f8b,0x1f83,0x1f8b},{0xa78c,0xa78b,0xa78c,0xa78b},{0x1f8c,0x1f8c,0x1f84,0x1f8c},{0x1f8d,0x1f8d,0x1f85,0x1f8d}, +{0xa78d,0xa78d,0x0265,0xa78d},{0x1f8e,0x1f8e,0x1f86,0x1f8e},{0x1f8f,0x1f8f,0x1f87,0x1f8f},{0xa790,0xa790,0xa791,0xa790}, +{0x1f90,0x1f98,0x1f90,0x1f98},{0xa791,0xa790,0xa791,0xa790},{0x1f91,0x1f99,0x1f91,0x1f99},{0xa792,0xa792,0xa793,0xa792}, +{0x1f92,0x1f9a,0x1f92,0x1f9a},{0xa793,0xa792,0xa793,0xa792},{0x1f93,0x1f9b,0x1f93,0x1f9b},{0x1f94,0x1f9c,0x1f94,0x1f9c}, +{0xa794,0xa7c4,0xa794,0xa7c4},{0x1f95,0x1f9d,0x1f95,0x1f9d},{0x1f96,0x1f9e,0x1f96,0x1f9e},{0xa796,0xa796,0xa797,0xa796}, +{0xa797,0xa796,0xa797,0xa796},{0x1f97,0x1f9f,0x1f97,0x1f9f},{0xa798,0xa798,0xa799,0xa798},{0x1f98,0x1f98,0x1f90,0x1f98}, +{0x1f99,0x1f99,0x1f91,0x1f99},{0xa799,0xa798,0xa799,0xa798},{0xa79a,0xa79a,0xa79b,0xa79a},{0x1f9a,0x1f9a,0x1f92,0x1f9a}, +{0x1f9b,0x1f9b,0x1f93,0x1f9b},{0xa79b,0xa79a,0xa79b,0xa79a},{0xa79c,0xa79c,0xa79d,0xa79c},{0x1f9c,0x1f9c,0x1f94,0x1f9c}, +{0xa79d,0xa79c,0xa79d,0xa79c},{0x1f9d,0x1f9d,0x1f95,0x1f9d},{0xa79e,0xa79e,0xa79f,0xa79e},{0x1f9e,0x1f9e,0x1f96,0x1f9e}, +{0xa79f,0xa79e,0xa79f,0xa79e},{0x1f9f,0x1f9f,0x1f97,0x1f9f},{0xa7a0,0xa7a0,0xa7a1,0xa7a0},{0x1fa0,0x1fa8,0x1fa0,0x1fa8}, +{0x1fa1,0x1fa9,0x1fa1,0x1fa9},{0xa7a1,0xa7a0,0xa7a1,0xa7a0},{0x1fa2,0x1faa,0x1fa2,0x1faa},{0xa7a2,0xa7a2,0xa7a3,0xa7a2}, +{0x1fa3,0x1fab,0x1fa3,0x1fab},{0xa7a3,0xa7a2,0xa7a3,0xa7a2},{0xa7a4,0xa7a4,0xa7a5,0xa7a4},{0x1fa4,0x1fac,0x1fa4,0x1fac}, +{0x1fa5,0x1fad,0x1fa5,0x1fad},{0xa7a5,0xa7a4,0xa7a5,0xa7a4},{0x1fa6,0x1fae,0x1fa6,0x1fae},{0xa7a6,0xa7a6,0xa7a7,0xa7a6}, +{0x1fa7,0x1faf,0x1fa7,0x1faf},{0xa7a7,0xa7a6,0xa7a7,0xa7a6},{0xa7a8,0xa7a8,0xa7a9,0xa7a8},{0x1fa8,0x1fa8,0x1fa0,0x1fa8}, +{0xa7a9,0xa7a8,0xa7a9,0xa7a8},{0x1fa9,0x1fa9,0x1fa1,0x1fa9},{0xa7aa,0xa7aa,0x0266,0xa7aa},{0x1faa,0x1faa,0x1fa2,0x1faa}, +{0x1fab,0x1fab,0x1fa3,0x1fab},{0xa7ab,0xa7ab,0x025c,0xa7ab},{0x1fac,0x1fac,0x1fa4,0x1fac},{0xa7ac,0xa7ac,0x0261,0xa7ac}, +{0x1fad,0x1fad,0x1fa5,0x1fad},{0xa7ad,0xa7ad,0x026c,0xa7ad},{0x1fae,0x1fae,0x1fa6,0x1fae},{0xa7ae,0xa7ae,0x026a,0xa7ae}, +{0x1faf,0x1faf,0x1fa7,0x1faf},{0xa7b0,0xa7b0,0x029e,0xa7b0},{0x1fb0,0x1fb8,0x1fb0,0x1fb8},{0xa7b1,0xa7b1,0x0287,0xa7b1}, +{0x1fb1,0x1fb9,0x1fb1,0x1fb9},{0xa7b2,0xa7b2,0x029d,0xa7b2},{0x1fb3,0x1fbc,0x1fb3,0x1fbc},{0xa7b3,0xa7b3,0xab53,0xa7b3}, +{0xa7b4,0xa7b4,0xa7b5,0xa7b4},{0xa7b5,0xa7b4,0xa7b5,0xa7b4},{0xa7b6,0xa7b6,0xa7b7,0xa7b6},{0xa7b7,0xa7b6,0xa7b7,0xa7b6}, +{0x1fb8,0x1fb8,0x1fb0,0x1fb8},{0xa7b8,0xa7b8,0xa7b9,0xa7b8},{0x1fb9,0x1fb9,0x1fb1,0x1fb9},{0xa7b9,0xa7b8,0xa7b9,0xa7b8}, +{0x1fba,0x1fba,0x1f70,0x1fba},{0xa7ba,0xa7ba,0xa7bb,0xa7ba},{0x1fbb,0x1fbb,0x1f71,0x1fbb},{0xa7bb,0xa7ba,0xa7bb,0xa7ba}, +{0x1fbc,0x1fbc,0x1fb3,0x1fbc},{0xa7bc,0xa7bc,0xa7bd,0xa7bc},{0xa7bd,0xa7bc,0xa7bd,0xa7bc},{0x1fbe,0x0399,0x1fbe,0x0399}, +{0xa7be,0xa7be,0xa7bf,0xa7be},{0xa7bf,0xa7be,0xa7bf,0xa7be},{0xa7c2,0xa7c2,0xa7c3,0xa7c2},{0x1fc3,0x1fcc,0x1fc3,0x1fcc}, +{0xa7c3,0xa7c2,0xa7c3,0xa7c2},{0xa7c4,0xa7c4,0xa794,0xa7c4},{0xa7c5,0xa7c5,0x0282,0xa7c5},{0xa7c6,0xa7c6,0x1d8e,0xa7c6}, +{0xa7c7,0xa7c7,0xa7c8,0xa7c7},{0x1fc8,0x1fc8,0x1f72,0x1fc8},{0xa7c8,0xa7c7,0xa7c8,0xa7c7},{0x1fc9,0x1fc9,0x1f73,0x1fc9}, +{0xa7c9,0xa7c9,0xa7ca,0xa7c9},{0x1fca,0x1fca,0x1f74,0x1fca},{0xa7ca,0xa7c9,0xa7ca,0xa7c9},{0x1fcb,0x1fcb,0x1f75,0x1fcb}, +{0x1fcc,0x1fcc,0x1fc3,0x1fcc},{0x1fd0,0x1fd8,0x1fd0,0x1fd8},{0x1fd1,0x1fd9,0x1fd1,0x1fd9},{0x1fd8,0x1fd8,0x1fd0,0x1fd8}, +{0x1fd9,0x1fd9,0x1fd1,0x1fd9},{0x1fda,0x1fda,0x1f76,0x1fda},{0x1fdb,0x1fdb,0x1f77,0x1fdb},{0x1fe0,0x1fe8,0x1fe0,0x1fe8}, +{0x1fe1,0x1fe9,0x1fe1,0x1fe9},{0x1fe5,0x1fec,0x1fe5,0x1fec},{0x1fe8,0x1fe8,0x1fe0,0x1fe8},{0x1fe9,0x1fe9,0x1fe1,0x1fe9}, +{0x1fea,0x1fea,0x1f7a,0x1fea},{0x1feb,0x1feb,0x1f7b,0x1feb},{0x1fec,0x1fec,0x1fe5,0x1fec},{0x1ff3,0x1ffc,0x1ff3,0x1ffc}, +{0xa7f5,0xa7f5,0xa7f6,0xa7f5},{0xa7f6,0xa7f5,0xa7f6,0xa7f5},{0x1ff8,0x1ff8,0x1f78,0x1ff8},{0x1ff9,0x1ff9,0x1f79,0x1ff9}, +{0x1ffa,0x1ffa,0x1f7c,0x1ffa},{0x1ffb,0x1ffb,0x1f7d,0x1ffb},{0x1ffc,0x1ffc,0x1ff3,0x1ffc},{0,0,0,0}}; const unsigned unicode_case_offset[2048]={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -642,119 +724,119 @@ const unsigned unicode_case_offset[2048]={ 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 120, 123, 126, 129, 132, 135, 137, 140, 142, 144, 146, 148, 150, 153, 155, - 157, 159, 161, 163, 165, 167, 169, 171, 172, 174, 176, 178, 180, 182, 184, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 261, 263, 265, 266, 267, 268, - 269, 270, 271, 273, 274, 275, 276, 277, 278, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 294, 295, 296, 297, 298, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 319, 321, 323, 325, 327, 329, 331, 333, 335, 337, 339, 341, 343, 345, 347, - 349, 351, 353, 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 375, 377, 379, - 381, 382, 383, 384, 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 423, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 437, 437, 438, 439, 439, - 440, 440, 440, 440, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 550, 550, 550, 550, 550, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 577, 578, 579, 579, 580, 580, 581, 582, 582, 582, - 582, 583, 584, 584, 585, 585, 586, 587, 587, 588, 589, 589, 590, 591, 591, 591, - 592, 592, 593, 594, 594, 594, 595, 595, 595, 595, 595, 595, 595, 595, 596, 596, - 596, 597, 597, 597, 598, 598, 598, 598, 599, 600, 601, 602, 603, 604, 604, 604, - 604, 604, 604, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 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, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 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, 608, 608, 608, 608, 608, 608, 608, 608, 608, - 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, - 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, - 609, 611, 613, 615, 617, 618, 619, 621, 623, 624, 625, 626, 628, 630, 632, 633, - 635, 636, 637, 638, 639, 640, 641, 643, 644, 646, 648, 650, 651, 653, 654, 656, - 658, 659, 661, 663, 665, 667, 669, 671, 673, 675, 677, 679, 681, 683, 685, 687, - 689, 692, 695, 697, 700, 703, 706, 709, 712, 715, 718, 721, 724, 727, 730, 733, - 736, 738, 741, 744, 747, 750, 753, 756, 759, 762, 765, 768, 771, 774, 777, 780, - 783, 785, 787, 789, 791, 793, 795, 797, 799, 801, 803, 805, 807, 809, 811, 813, - 815, 817, 819, 820, 821, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, - 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, - 876, 878, 880, 882, 884, 886, 888, 888, 889, 891, 893, 895, 897, 898, 900, 901, - 902, 905, 908, 911, 914, 917, 920, 923, 926, 929, 932, 935, 938, 941, 944, 947, - 950, 953, 956, 959, 962, 965, 968, 971, 974, 977, 980, 983, 986, 989, 992, 995, - 998,1001,1004,1007,1010,1013,1016,1019,1022,1025,1028,1031,1034,1037,1040,1043, -1045,1048,1051,1054,1057,1060,1063,1066,1069,1072,1075,1078,1081,1084,1087,1090, -1093,1096,1099,1102,1105,1108,1111,1114,1117,1120,1123,1126,1129,1132,1135,1138, -1141,1143,1145,1147,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171, -1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202, -1204,1206,1207,1209,1211,1212,1214,1216,1217,1218,1219,1220,1221,1222,1223,1225, -1227,1230,1233,1235,1237,1239,1241,1243,1245,1247,1249,1252,1255,1258,1261,1264, -1267,1270,1273,1276,1279,1282,1285,1288,1291,1294,1297,1300,1303,1306,1309,1312, -1315,1318,1321,1324,1327,1330,1333,1336,1339,1342,1345,1348,1351,1354,1357,1360, -1363,1366,1369,1372,1374,1376,1378,1381,1384,1387,1390,1393,1396,1399,1402,1405, -1408,1412,1416,1420,1424,1428,1432,1436,1440,1444,1448,1452,1456,1460,1464,1468, -1472,1476,1480,1484,1488,1492,1496,1500,1504,1508,1512,1516,1520,1524,1528,1532, -1536,1540,1544,1548,1552,1555,1558,1561,1564,1567,1570,1572,1575,1578,1581,1584, -1586,1588,1590,1593,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606, -1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637, -1639,1641,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669, -1671,1673,1675,1677,1679,1681,1683,1684,1686,1687,1688,1689,1690,1691,1693,1694, -1695,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709, -1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725, -1726,1727,1728,1729,1730,1731,1732,1733,1733,1733,1733,1733,1733,1733,1733,1733, -1733,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747, -1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1759,1760,1761,1762,1764,1765, -1766,1767,1768,1769,1770,1771,1772,1773,1773,1773,1773,1773,1773,1773,1773,1773, -1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773, -1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773, -1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773, -1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773, -1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773, -1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773, -1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773,1773, -1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788, -1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804, -1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820, -1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836, -1837,1839,1841,1843,1845,1847,1849,1851,1853,1855,1857,1859,1861,1863,1865,1867, -1869,1871,1873,1875,1877,1879,1881,1883,1885,1887,1889,1891,1893,1895,1897,1899, -1901,1903,1905,1907,1909,1911,1913,1915,1917,1919,1921,1923,1925,1927,1929,1930, -1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946, -1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977, -1979,1981,1983,1985,1987,1989,1991,1992,1993,1994,1995,1996,1998,1998,1998,1999, -1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014, -2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030, -2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046, -2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062, -2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078, -2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094, -2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110, -2111,2112,2113,2114,2115,2116,2117,2117,2117,2118,2119,2120,2121,2122,2123,2123, -2123,2124,2126,2129,2132,2135,2138,2141,2144,2147,2150,2153,2156,2159,2162,2165, -2168,2170,2172,2175,2178,2181,2184,2187,2190,2193,2196,2199,2201,2203,2205,2207, -2209,2211,2214,2217,2220,2223,2226,2228,2230,2233,2236,2239,2242,2245,2248,2250, -2252,2254,2257,2259,2262,2264,2267,2269,2272,2274,2277,2279,2281,2282,2284,2285, -2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317, -2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2330,2332,2334,2336,2338,2339, -2340,2342,2344,2346,2348,2350,2352,2354,2356,2357,2358,2359,2361,2363,2365,2366, -2367,2369,2371,2373,2375,2376,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395, -2397,2399,2401,2403,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2426, -2427,2429,2431,2432,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2443,2444, -2444,2444,2444,2444,2445,2445,2445,2445,2445,2446,2447,2448,2449,2450,2450,2450, -2450,2451,2452,2452,2452,2452,2452,2452,2452,2453,2454,2455,2456,2456,2456,2456, -2456,2457,2458,2458,2458,2458,2459,2459,2459,2460,2461,2462,2463,2464,2464,2464, -2464,2464,2464,2464,2465,2465,2465,2465,2465,2466,2467,2468,2469,2470,2470,2470 + 157, 160, 163, 166, 169, 172, 175, 178, 180, 183, 186, 189, 192, 195, 198, 201, + 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, + 235, 237, 239, 241, 243, 245, 247, 249, 250, 252, 254, 256, 257, 258, 260, 262, + 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, + 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, + 328, 330, 332, 334, 336, 338, 340, 343, 345, 347, 349, 352, 355, 357, 359, 361, + 363, 365, 367, 370, 372, 374, 376, 378, 380, 381, 383, 385, 387, 389, 391, 393, + 395, 397, 399, 401, 403, 404, 405, 406, 407, 408, 408, 409, 410, 411, 412, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 433, 435, 437, 439, 441, 443, 445, 447, 449, 451, 453, 455, 457, 459, 461, + 463, 465, 467, 469, 471, 473, 475, 477, 479, 481, 483, 485, 487, 489, 491, 493, + 495, 496, 497, 498, 500, 502, 503, 504, 505, 506, 507, 508, 509, 510, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 537, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 551, 551, 552, 553, 553, + 554, 554, 554, 554, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 664, 664, 664, 664, 664, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 691, 692, 693, 693, 694, 694, 695, 696, 696, 696, + 696, 697, 698, 698, 699, 699, 700, 701, 701, 702, 703, 704, 705, 706, 706, 706, + 707, 707, 708, 709, 709, 709, 710, 710, 710, 710, 710, 710, 710, 710, 711, 711, + 711, 712, 712, 713, 714, 714, 714, 714, 715, 716, 717, 718, 719, 720, 720, 720, + 720, 720, 720, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 722, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, + 725, 727, 729, 731, 733, 734, 735, 737, 739, 740, 741, 742, 744, 746, 748, 749, + 751, 752, 753, 754, 755, 756, 757, 759, 760, 762, 764, 766, 767, 769, 770, 772, + 774, 775, 777, 779, 781, 783, 785, 787, 789, 791, 793, 795, 797, 799, 801, 803, + 805, 808, 811, 813, 816, 819, 822, 825, 828, 831, 834, 837, 840, 843, 846, 849, + 852, 854, 857, 860, 863, 866, 869, 872, 875, 878, 881, 884, 887, 890, 893, 896, + 899, 901, 903, 905, 907, 909, 911, 913, 915, 917, 919, 921, 923, 925, 927, 929, + 931, 933, 935, 936, 937, 938, 940, 942, 944, 946, 948, 950, 952, 954, 956, 958, + 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, 990, + 992, 994, 996, 998,1000,1002,1004,1004,1005,1007,1009,1011,1013,1014,1016,1017, +1018,1021,1024,1027,1030,1033,1036,1039,1042,1045,1048,1051,1054,1057,1060,1063, +1066,1069,1072,1075,1078,1081,1084,1087,1090,1093,1096,1099,1102,1105,1108,1111, +1114,1117,1120,1123,1126,1129,1132,1135,1138,1141,1144,1147,1150,1153,1156,1159, +1161,1164,1167,1170,1173,1176,1179,1182,1185,1188,1191,1194,1197,1200,1203,1206, +1209,1212,1215,1218,1221,1224,1227,1230,1233,1236,1239,1242,1245,1248,1251,1254, +1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287, +1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318, +1320,1322,1323,1325,1327,1328,1330,1332,1333,1334,1335,1336,1337,1338,1339,1341, +1343,1347,1351,1354,1357,1360,1363,1366,1369,1372,1374,1377,1380,1383,1386,1389, +1392,1396,1400,1404,1408,1412,1416,1420,1424,1428,1432,1436,1440,1444,1448,1452, +1456,1460,1464,1468,1472,1476,1480,1484,1488,1492,1496,1500,1504,1508,1512,1516, +1520,1525,1530,1535,1539,1543,1547,1552,1557,1562,1567,1572,1576,1580,1585,1590, +1595,1600,1605,1610,1615,1620,1625,1630,1635,1640,1645,1650,1655,1660,1665,1670, +1675,1680,1685,1690,1695,1699,1703,1707,1711,1716,1721,1726,1731,1736,1741,1746, +1751,1756,1761,1766,1771,1775,1779,1783,1787,1791,1795,1798,1802,1806,1810,1814, +1817,1820,1823,1827,1830,1832,1834,1836,1838,1840,1842,1844,1846,1847,1848,1849, +1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880, +1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1912, +1914,1916,1918,1920,1922,1924,1926,1927,1929,1930,1931,1932,1933,1934,1936,1937, +1938,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952, +1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968, +1969,1970,1971,1972,1973,1974,1975,1976,1976,1976,1976,1976,1976,1976,1976,1976, +1976,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990, +1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2002,2003,2004,2005,2007,2008, +2009,2010,2011,2012,2013,2014,2015,2016,2016,2016,2016,2016,2016,2016,2016,2017, +2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017, +2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017, +2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017, +2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017, +2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017, +2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017, +2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017, +2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032, +2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048, +2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064, +2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080, +2081,2084,2087,2090,2093,2096,2099,2102,2105,2108,2111,2114,2117,2120,2123,2126, +2129,2132,2135,2138,2141,2144,2147,2150,2153,2156,2159,2162,2165,2168,2171,2174, +2177,2180,2183,2186,2189,2192,2195,2198,2201,2204,2207,2210,2213,2216,2219,2221, +2223,2225,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253, +2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285, +2287,2289,2291,2293,2295,2297,2299,2300,2301,2302,2303,2304,2306,2306,2306,2307, +2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322, +2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338, +2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354, +2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370, +2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386, +2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402, +2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418, +2419,2420,2421,2422,2423,2424,2425,2425,2425,2426,2427,2428,2429,2430,2431,2431, +2431,2432,2434,2437,2440,2443,2446,2449,2452,2455,2458,2461,2464,2467,2470,2473, +2476,2478,2480,2483,2486,2489,2492,2495,2498,2501,2504,2507,2509,2511,2513,2515, +2517,2519,2522,2525,2528,2531,2534,2536,2538,2541,2544,2547,2550,2553,2556,2558, +2560,2562,2565,2567,2570,2572,2575,2577,2580,2582,2585,2587,2589,2590,2592,2593, +2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625, +2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2638,2640,2642,2644,2646,2647, +2648,2650,2652,2654,2656,2658,2660,2662,2664,2665,2666,2667,2669,2671,2673,2674, +2675,2677,2679,2681,2683,2685,2686,2688,2690,2692,2694,2696,2698,2700,2702,2704, +2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734,2736, +2737,2739,2741,2742,2744,2745,2746,2747,2748,2750,2752,2754,2756,2758,2759,2761, +2762,2762,2762,2763,2765,2766,2767,2768,2769,2771,2773,2775,2776,2777,2777,2777, +2777,2778,2779,2779,2779,2779,2779,2779,2779,2780,2781,2782,2783,2783,2783,2783, +2783,2784,2785,2785,2785,2785,2786,2786,2786,2787,2788,2789,2790,2791,2791,2791, +2791,2791,2791,2791,2792,2792,2793,2794,2794,2795,2796,2797,2798,2799,2799,2799 }; diff --git a/unicode/unicode_wcwidth.c b/unicode/unicode_wcwidth.c index 5266552..cda95f0 100644 --- a/unicode/unicode_wcwidth.c +++ b/unicode/unicode_wcwidth.c @@ -6,19 +6,19 @@ #include <stdlib.h> -int unicode_wcwidth(char32_t c) +unicode_eastasia_t unicode_eastasia(char32_t c) { size_t b=0; - size_t e=sizeof(unicode_wcwidth_tab)/sizeof(unicode_wcwidth_tab[0]); + size_t e=sizeof(unicode_eastasia_tab)/sizeof(unicode_eastasia_tab[0]); while (b < e) { size_t n=b + (e-b)/2; - if (c >= unicode_wcwidth_tab[n][0]) + if (c >= unicode_eastasia_tab[n][0]) { - if (c <= unicode_wcwidth_tab[n][1]) - return 2; + if (c <= unicode_eastasia_tab[n][1]) + return unicode_eastasia_v[n]; b=n+1; } else @@ -27,6 +27,11 @@ int unicode_wcwidth(char32_t c) } } + return UNICODE_EASTASIA_N; +} + +int unicode_wcwidth(char32_t c) +{ switch (unicode_lb_lookup(c)) { case UNICODE_LB_BK: case UNICODE_LB_CR: @@ -39,6 +44,13 @@ int unicode_wcwidth(char32_t c) default: break; } + + switch (unicode_eastasia(c)) { + case UNICODE_EASTASIA_F: + case UNICODE_EASTASIA_W: + return 2; + } + return 1; } diff --git a/unicode/unicode_wordbreak.c b/unicode/unicode_wordbreak.c index 991f0ba..669a382 100644 --- a/unicode/unicode_wordbreak.c +++ b/unicode/unicode_wordbreak.c @@ -16,35 +16,76 @@ #include "wordbreaktab_internal.h" #include "wordbreaktab.h" +/* +** We need to keep track of the original character, in addition +** to the wordbreaking class, to check WB3. +*/ + +typedef struct { + uint8_t cl; + char32_t ch; +} wb_info_t; + +/* +** Internal object. +*/ struct unicode_wb_info { int (*cb_func)(int, void *); void *cb_arg; - uint8_t prevclass; - uint8_t wb7_first_char; + /* Previous character seen. */ + wb_info_t prevclass; + + /* + ** For some rules we peek an extra character, and so need to + ** stash away the 2nd previous character seen, when we're looking at + ** it. + */ + wb_info_t prev2class; + + /* + ** How many (Extend | Format | ZWJ) were processed, so far, + ** for WB4's sake. + */ size_t wb4_cnt; - size_t wb4_extra_cnt; + /* + ** Most recently processed WB4 character. + */ + wb_info_t wb4_last; + + /* + ** Each character received by unicode_wb_next is forwarded to + ** this handler. + */ + int (*next_handler)(unicode_wb_info_t, wb_info_t); - int (*next_handler)(unicode_wb_info_t, uint8_t); + /* + ** unicode_wb_end() calls this. If we were in a middle of a + ** multi-char rule, this wraps things up. + */ int (*end_handler)(unicode_wb_info_t); }; -static int sot(unicode_wb_info_t i, uint8_t cl); -static int wb4(unicode_wb_info_t i); -static int wb1and2_done(unicode_wb_info_t i, uint8_t cl); +/* Forward declarations */ + +static int sot(unicode_wb_info_t i, wb_info_t cl); +static int wb1and2_done(unicode_wb_info_t i, wb_info_t cl); -static int seen_wb67_handler(unicode_wb_info_t i, uint8_t cl); +static int seen_wb67_handler(unicode_wb_info_t i, wb_info_t cl); static int seen_wb67_end_handler(unicode_wb_info_t i); -static int wb67_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl); +static int wb67_done(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl); -static int seen_wb7bc_handler(unicode_wb_info_t i, uint8_t cl); +static int seen_wb7bc_handler(unicode_wb_info_t i, wb_info_t cl); static int seen_wb7bc_end_handler(unicode_wb_info_t i); -static int wb7bc_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl); +static int wb7bc_done(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl); -static int seen_wb1112_handler(unicode_wb_info_t i, uint8_t cl); +static int seen_wb1112_handler(unicode_wb_info_t i, wb_info_t cl); static int seen_wb1112_end_handler(unicode_wb_info_t i); -static int wb1112_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl); +static int wb1112_done(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl); + +static int seen_wb1516_handler(unicode_wb_info_t i, wb_info_t cl); +static int wb1516_done(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl); unicode_wb_info_t unicode_wb_init(int (*cb_func)(int, void *), void *cb_arg) @@ -57,17 +98,16 @@ unicode_wb_info_t unicode_wb_init(int (*cb_func)(int, void *), i->next_handler=sot; i->cb_func=cb_func; i->cb_arg=cb_arg; + i->wb4_cnt=0; return i; } int unicode_wb_end(unicode_wb_info_t i) { - int rc; + int rc=0; if (i->end_handler) rc=(*i->end_handler)(i); - else - rc=wb4(i); free(i); return rc; @@ -91,16 +131,42 @@ int unicode_wb_next_cnt(unicode_wb_info_t i, int unicode_wb_next(unicode_wb_info_t i, char32_t ch) { - return (*i->next_handler) - (i, unicode_tab_lookup(ch, - unicode_indextab, - sizeof(unicode_indextab) - / sizeof(unicode_indextab[0]), - unicode_rangetab, - unicode_classtab, - UNICODE_WB_OTHER)); + wb_info_t info; + + info.ch=ch; + info.cl=unicode_tab_lookup(ch, + unicode_indextab, + sizeof(unicode_indextab) + / sizeof(unicode_indextab[0]), + unicode_rangetab, + unicode_classtab, + UNICODE_WB_OTHER); + + return (*i->next_handler)(i, info); } +#if 0 + +static int result(unicode_wb_info_t i, int flag) +{ + return (*i->cb_func)(flag, i->cb_arg); +} +#else +#define result(i,flag) ( (*(i)->cb_func)( (flag), (i)->cb_arg)) +#endif + +/* +** Check for WB3C +*/ + +#define WB3C_APPLIES(prevclass,uclass) \ + ((prevclass).cl == UNICODE_WB_ZWJ && \ + unicode_emoji_extended_pictographic((uclass).ch)) + +/* +** Finished WB4 processing. Emit the equivalent number of non-break +** indications. +*/ static int wb4(unicode_wb_info_t i) { int rc=0; @@ -110,24 +176,14 @@ static int wb4(unicode_wb_info_t i) --i->wb4_cnt; if (rc == 0) - rc=(*i->cb_func)(0, i->cb_arg); + rc=result(i, 0); } return rc; } -static int result(unicode_wb_info_t i, int flag) -{ - int rc=wb4(i); - - if (rc == 0) - rc=(*i->cb_func)(flag, i->cb_arg); - - return rc; -} - #define SET_HANDLER(next,end) (i->next_handler=next, i->end_handler=end) -static int sot(unicode_wb_info_t i, uint8_t cl) +static int sot(unicode_wb_info_t i, wb_info_t cl) { i->prevclass=cl; SET_HANDLER(wb1and2_done, NULL); @@ -135,51 +191,147 @@ static int sot(unicode_wb_info_t i, uint8_t cl) return result(i, 1); /* WB1 */ } -static int wb1and2_done(unicode_wb_info_t i, uint8_t cl) +static int wb4_handled(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl); + +static int wb1and2_done(unicode_wb_info_t i, wb_info_t cl) { - uint8_t prevclass=i->prevclass; + wb_info_t prevclass=i->prevclass; i->prevclass=cl; - if (prevclass == UNICODE_WB_CR && cl == UNICODE_WB_LF) + if (prevclass.cl == UNICODE_WB_CR && cl.cl == UNICODE_WB_LF) return result(i, 0); /* WB3 */ - switch (prevclass) { + switch (prevclass.cl) { case UNICODE_WB_CR: case UNICODE_WB_LF: case UNICODE_WB_Newline: return result(i, 1); /* WB3a */ } - switch (cl) { + switch (cl.cl) { case UNICODE_WB_CR: case UNICODE_WB_LF: case UNICODE_WB_Newline: return result(i, 1); /* WB3b */ } - if (cl == UNICODE_WB_Extend || cl == UNICODE_WB_Format) + if (WB3C_APPLIES(prevclass, cl)) + return result(i, 0); /* WB3c */ + + if (prevclass.cl == UNICODE_WB_WSegSpace && + cl.cl == UNICODE_WB_WSegSpace) + return result(i, 0); /* WB3d */ + + return wb4_handled(i, prevclass, cl); +} + +/* +** Macros, as defined in the TR +*/ +#define AHLetter(c) (c.cl == UNICODE_WB_ALetter || \ + c.cl == UNICODE_WB_Hebrew_Letter) +#define MidNumLetQ(c) (c.cl == UNICODE_WB_MidNumLet || \ + c.cl == UNICODE_WB_Single_Quote) + +/* +** Whether the character is applicable to the WB4 rule. +*/ + +#define WB4(C) ((C).cl == UNICODE_WB_Extend || (C).cl == UNICODE_WB_Format ||\ + (C).cl == UNICODE_WB_ZWJ) + +/* +** Check if the current character invokes the WB4 rule, if so return s0, +** doing nothing, here, after performing some record keeping. +*/ + +#define WB4_APPLY(i,cl) \ + do { \ + if (WB4(cl)) \ + { \ + ++(i)->wb4_cnt; \ + (i)->wb4_last=(cl); \ + return 0; \ + } \ + } while (0) + +/* +** After processing WB4, check if the last WB4-processed character +** will invoke WB3C for the next character. +** +** This is invoked after WB4_APPLY. The return value must be stored in an +** int. +** +** This must be followed by WB4_END. Then, after WB4_END, if this returned +** non 0, WB3C applies, returning a non-break indication. +*/ + +#define WB3C_APPLIES_AFTER_WB4(i,cl) \ + ( (i)->wb4_cnt > 0 && \ + WB3C_APPLIES( (i)->wb4_last, (cl))) + +/* +** Wrapper for invoking wb4() after detecting that it no longer applies. This +** gets invoked: +** +** - After WB4_APPLY +** +** - After WB3C_APPLIES_AFTER_WB4 +*/ + +#define WB4_END(i) \ + do { \ + \ + int rc=wb4(i); \ + \ + if (rc) \ + return rc; \ + } while (0) + + +static int resume_wb4(unicode_wb_info_t i, wb_info_t cl) +{ + if (!WB4(cl)) + { + SET_HANDLER(wb1and2_done, NULL); + + if (WB3C_APPLIES(i->wb4_last, cl)) + { + i->prevclass=cl; + return result(i, 0); + } + + wb_info_t prevclass=i->prevclass; + + i->prevclass=cl; + + return wb4_handled(i, prevclass, cl); + } + i->wb4_last=cl; + return result(i, 0); +} + + +static int wb4_handled(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl) +{ + if (WB4(cl)) { i->prevclass=prevclass; - ++i->wb4_cnt; - return 0; /* WB4 */ + i->wb4_last=cl; + SET_HANDLER(resume_wb4, 0); + return result(i, 0); /* WB4 */ } - if ((prevclass == UNICODE_WB_ALetter || - prevclass == UNICODE_WB_Hebrew_Letter) && - (cl == UNICODE_WB_ALetter || cl == UNICODE_WB_Hebrew_Letter)) + if (AHLetter(prevclass) && AHLetter(cl)) { return result(i, 0); /* WB5 */ } - if ((prevclass == UNICODE_WB_ALetter || - prevclass == UNICODE_WB_Hebrew_Letter) - && - (cl == UNICODE_WB_MidLetter || cl == UNICODE_WB_MidNumLet || - cl == UNICODE_WB_Single_Quote)) + if (AHLetter(prevclass) && + (MidNumLetQ(cl) || cl.cl == UNICODE_WB_MidLetter)) { - i->wb4_extra_cnt=0; - i->wb7_first_char=prevclass; + i->prev2class=prevclass; SET_HANDLER(seen_wb67_handler, seen_wb67_end_handler); return 0; } @@ -188,94 +340,69 @@ static int wb1and2_done(unicode_wb_info_t i, uint8_t cl) } /* -** (ALetter | Hebrew_Letter) (MidLetter | MidNumLet | Single_quote) ? -** -** prevclass cl -** -** Seen (ALetter | Hebrew_Letter)(MidLetter | MidNumLet), with the second -** character's status not returned yet. +** AHLetter (MidLetter | MidNumLetQ) seen, is this followed by AHLetter? */ -static int seen_wb67_handler(unicode_wb_info_t i, uint8_t cl) +static int seen_wb67_handler(unicode_wb_info_t i, wb_info_t cl) { int rc; - uint8_t prevclass; - size_t extra_cnt; - - if (cl == UNICODE_WB_Extend || cl == UNICODE_WB_Format) - { - ++i->wb4_extra_cnt; - return 0; - } - extra_cnt=i->wb4_extra_cnt; - - /* - ** Reset the handler to the default, then check WB6 - */ + WB4_APPLY(i, cl); SET_HANDLER(wb1and2_done, NULL); - if (cl == UNICODE_WB_ALetter || cl == UNICODE_WB_Hebrew_Letter) + if (AHLetter(cl)) { - rc=result(i, 0); /* WB6 */ - i->wb4_cnt=extra_cnt; + i->prevclass=cl; + + rc=result(i, 0); /* WB6 */ + WB4_END(i); if (rc == 0) rc=result(i, 0); /* WB7 */ - i->prevclass=cl; - return rc; } - prevclass=i->prevclass; /* This was the second character */ + int wb3c_applies=WB3C_APPLIES_AFTER_WB4(i, cl); - /* - ** Process the second character, starting with WB7 - */ - - rc=wb67_done(i, i->wb7_first_char, prevclass); + rc=seen_wb67_end_handler(i); - i->prevclass=prevclass; - i->wb4_cnt=extra_cnt; + if (wb3c_applies) + return result(i, 0); if (rc == 0) rc=(*i->next_handler)(i, cl); - /* Process the current char now */ return rc; } /* -** Seen (ALetter | Hebrew_Letter)(MidLetter | MidNumLet), with the second -** character's status not returned yet, and now sot. +** AHLetter (MidLetter | MidNumLetQ) seen, with the second +** character's status not returned yet, and now either sot, or something +** else. */ static int seen_wb67_end_handler(unicode_wb_info_t i) { - int rc; - size_t extra_cnt=i->wb4_extra_cnt; + int rc=wb67_done(i, i->prev2class, i->prevclass); - /* - ** Process the second character, starting with WB7. - */ - - rc=wb67_done(i, i->wb7_first_char, i->prevclass); - i->wb4_cnt=extra_cnt; - if (rc == 0) - rc=wb4(i); - return rc; + if (rc) + return rc; + WB4_END(i); + return 0; } -static int wb67_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl) +static int wb67_done(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl) { - if (prevclass == UNICODE_WB_Hebrew_Letter && cl == UNICODE_WB_Single_Quote) + if (prevclass.cl == UNICODE_WB_Hebrew_Letter && + cl.cl == UNICODE_WB_Single_Quote) return result(i, 0); /* WB7a */ - if (prevclass == UNICODE_WB_Hebrew_Letter && cl == UNICODE_WB_Double_Quote) + if (prevclass.cl == UNICODE_WB_Hebrew_Letter && + cl.cl == UNICODE_WB_Double_Quote) { - i->wb4_extra_cnt=0; + i->prev2class=prevclass; SET_HANDLER(seen_wb7bc_handler, seen_wb7bc_end_handler); return 0; } @@ -292,97 +419,72 @@ static int wb67_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl) ** not returned yet. */ -static int seen_wb7bc_handler(unicode_wb_info_t i, uint8_t cl) +static int seen_wb7bc_handler(unicode_wb_info_t i, wb_info_t cl) { int rc; - uint8_t prevclass; - size_t extra_cnt; - if (cl == UNICODE_WB_Extend || cl == UNICODE_WB_Format) - { - ++i->wb4_extra_cnt; - return 0; - } - - extra_cnt=i->wb4_extra_cnt; - - /* - ** Reset the handler to the default, then check WB7a and WB7b - */ + WB4_APPLY(i, cl); SET_HANDLER(wb1and2_done, NULL); - if (cl == UNICODE_WB_Hebrew_Letter) + if (cl.cl == UNICODE_WB_Hebrew_Letter) { - rc=result(i, 0); /* WB7b */ - i->wb4_cnt=extra_cnt; + i->prevclass=cl; + + rc=result(i, 0); /* WB7b */ + + WB4_END(i); if (rc == 0) - rc=result(i, 0); /* WB7bc */ + rc=result(i, 0); /* WB7c */ - i->prevclass=cl; - return rc; } - prevclass=i->prevclass; /* This was the second character */ + int wb3c_applies=WB3C_APPLIES_AFTER_WB4(i, cl); - /* - ** Process the second character, starting with WB8 - */ - - rc=wb7bc_done(i, UNICODE_WB_Hebrew_Letter, prevclass); - - i->prevclass=prevclass; - i->wb4_cnt=extra_cnt; + rc=seen_wb7bc_end_handler(i); + if (wb3c_applies) + return result(i, 0); if (rc == 0) rc=(*i->next_handler)(i, cl); - /* Process the current char now */ return rc; } /* ** Seen Hebrew_Letter Double_Quote, with the second -** character's status not returned yet, and now sot. +** character's status not returned yet, and now sot or something else. */ static int seen_wb7bc_end_handler(unicode_wb_info_t i) { - int rc; - size_t extra_cnt=i->wb4_extra_cnt; + int rc=wb7bc_done(i, i->prev2class, i->prevclass); - /* - ** Process the second character, starting with WB8. - */ + if (rc) + return rc; - rc=wb7bc_done(i, UNICODE_WB_Hebrew_Letter, i->prevclass); - i->wb4_cnt=extra_cnt; - if (rc == 0) - rc=wb4(i); - return rc; + WB4_END(i); + + return 0; } -static int wb7bc_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl) +static int wb7bc_done(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl) { - if (prevclass == UNICODE_WB_Numeric && cl == UNICODE_WB_Numeric) + if (prevclass.cl == UNICODE_WB_Numeric && cl.cl == UNICODE_WB_Numeric) return result(i, 0); /* WB8 */ - if ((prevclass == UNICODE_WB_ALetter || - prevclass == UNICODE_WB_Hebrew_Letter) && cl == UNICODE_WB_Numeric) + if (AHLetter(prevclass) && cl.cl == UNICODE_WB_Numeric) return result(i, 0); /* WB9 */ - if (prevclass == UNICODE_WB_Numeric && - (cl == UNICODE_WB_ALetter || cl == UNICODE_WB_Hebrew_Letter)) + if (prevclass.cl == UNICODE_WB_Numeric && AHLetter(cl)) return result(i, 0); /* WB10 */ - - if (prevclass == UNICODE_WB_Numeric && - (cl == UNICODE_WB_MidNum || cl == UNICODE_WB_MidNumLet || - cl == UNICODE_WB_Single_Quote)) + if (prevclass.cl == UNICODE_WB_Numeric && + (cl.cl == UNICODE_WB_MidNum || MidNumLetQ(cl))) { - i->wb4_extra_cnt=0; + i->prev2class=prevclass; SET_HANDLER(seen_wb1112_handler, seen_wb1112_end_handler); return 0; } @@ -399,53 +501,37 @@ static int wb7bc_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl) ** not returned yet. */ -static int seen_wb1112_handler(unicode_wb_info_t i, uint8_t cl) +static int seen_wb1112_handler(unicode_wb_info_t i, wb_info_t cl) { int rc; - uint8_t prevclass; - size_t extra_cnt; - if (cl == UNICODE_WB_Extend || cl == UNICODE_WB_Format) - { - ++i->wb4_extra_cnt; - return 0; - } - - extra_cnt=i->wb4_extra_cnt; - - /* - ** Reset the handler to the default, then check WB6 - */ + WB4_APPLY(i, cl); SET_HANDLER(wb1and2_done, NULL); - if (cl == UNICODE_WB_Numeric) + if (cl.cl == UNICODE_WB_Numeric) { - rc=result(i, 0); /* WB11 */ - i->wb4_cnt=extra_cnt; + i->prevclass=cl; + + rc=result(i, 0); /* WB12 */ + + WB4_END(i); if (rc == 0) - rc=result(i, 0); /* WB12 */ + rc=result(i, 0); /* WB11 */ - i->prevclass=cl; - return rc; } - prevclass=i->prevclass; /* This was the second character */ - - /* - ** Process the second character, starting with WB7 - */ + int wb3c_applies=WB3C_APPLIES_AFTER_WB4(i, cl); - rc=wb1112_done(i, UNICODE_WB_Numeric, prevclass); + rc=seen_wb1112_end_handler(i); - i->prevclass=prevclass; - i->wb4_cnt=extra_cnt; + if (wb3c_applies) + return result(i, 0); if (rc == 0) rc=(*i->next_handler)(i, cl); - /* Process the current char now */ return rc; } @@ -457,38 +543,34 @@ static int seen_wb1112_handler(unicode_wb_info_t i, uint8_t cl) static int seen_wb1112_end_handler(unicode_wb_info_t i) { - int rc; - size_t extra_cnt=i->wb4_extra_cnt; + int rc=wb1112_done(i, i->prev2class, i->prevclass); - /* - ** Process the second character, starting with WB11. - */ + if (rc) + return rc; - rc=wb1112_done(i, UNICODE_WB_Numeric, i->prevclass); - i->wb4_cnt=extra_cnt; - if (rc == 0) - rc=wb4(i); - return rc; + WB4_END(i); + + return 0; } -static int wb1112_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl) +static int wb1112_done(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl) { - if (prevclass == UNICODE_WB_Katakana && - cl == UNICODE_WB_Katakana) + if (prevclass.cl == UNICODE_WB_Katakana && + cl.cl == UNICODE_WB_Katakana) return result(i, 0); /* WB13 */ - switch (prevclass) { + switch (prevclass.cl) { case UNICODE_WB_ALetter: case UNICODE_WB_Hebrew_Letter: case UNICODE_WB_Numeric: case UNICODE_WB_Katakana: case UNICODE_WB_ExtendNumLet: - if (cl == UNICODE_WB_ExtendNumLet) + if (cl.cl == UNICODE_WB_ExtendNumLet) return result(i, 0); /* WB13a */ } - if (prevclass == UNICODE_WB_ExtendNumLet) - switch (cl) { + if (prevclass.cl == UNICODE_WB_ExtendNumLet) + switch (cl.cl) { case UNICODE_WB_ALetter: case UNICODE_WB_Hebrew_Letter: case UNICODE_WB_Numeric: @@ -496,10 +578,44 @@ static int wb1112_done(unicode_wb_info_t i, uint8_t prevclass, uint8_t cl) return result(i, 0); /* WB13b */ } - if (prevclass == UNICODE_WB_Regional_Indicator && - cl == UNICODE_WB_Regional_Indicator) + if (prevclass.cl == UNICODE_WB_Regional_Indicator && + cl.cl == UNICODE_WB_Regional_Indicator) + { + SET_HANDLER(seen_wb1516_handler, 0); + return result(i, 0); + } + + return wb1516_done(i, prevclass, cl); +} + +static int seen_wb1516_handler(unicode_wb_info_t i, wb_info_t cl) +{ + WB4_APPLY(i, cl); + + SET_HANDLER(wb1and2_done, NULL); + + int wb3c_applies=WB3C_APPLIES_AFTER_WB4(i, cl); + + WB4_END(i); + + if (wb3c_applies) return result(i, 0); - return result(i, 1); /* WB14 */ + + if (cl.cl == UNICODE_WB_Regional_Indicator) + { + wb_info_t prevclass=i->prevclass; + + i->prevclass=cl; + + return wb1516_done(i, prevclass, cl); + } + + return (*i->next_handler)(i, cl); +} + +static int wb1516_done(unicode_wb_info_t i, wb_info_t prevclass, wb_info_t cl) +{ + return result(i, 1); /* WB999 */ } /* --------------------------------------------------------------------- */ @@ -559,4 +675,3 @@ static int unicode_wbscan_callback(int flag, void *arg) ++i->cnt; return 0; } - diff --git a/unicode/wordbreaktab.h b/unicode/wordbreaktab.h index 20b535a..edb4fe0 100644 --- a/unicode/wordbreaktab.h +++ b/unicode/wordbreaktab.h @@ -2,6 +2,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x000a & 0xFF, 0x000a & 0xFF}, {0x000b & 0xFF, 0x000c & 0xFF}, {0x000d & 0xFF, 0x000d & 0xFF}, + {0x0020 & 0xFF, 0x0020 & 0xFF}, {0x0022 & 0xFF, 0x0022 & 0xFF}, {0x0027 & 0xFF, 0x0027 & 0xFF}, {0x002c & 0xFF, 0x002c & 0xFF}, @@ -22,12 +23,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x00d8 & 0xFF, 0x00f6 & 0xFF}, {0x00f8 & 0xFF, 0x00ff & 0xFF}, {0x0100 & 0xFF, 0x01ff & 0xFF}, - {0x0200 & 0xFF, 0x02c1 & 0xFF}, - {0x02c6 & 0xFF, 0x02d1 & 0xFF}, - {0x02d7 & 0xFF, 0x02d7 & 0xFF}, - {0x02e0 & 0xFF, 0x02e4 & 0xFF}, - {0x02ec & 0xFF, 0x02ec & 0xFF}, - {0x02ee & 0xFF, 0x02ee & 0xFF}, + {0x0200 & 0xFF, 0x02d7 & 0xFF}, + {0x02de & 0xFF, 0x02ff & 0xFF}, {0x0300 & 0xFF, 0x036f & 0xFF}, {0x0370 & 0xFF, 0x0374 & 0xFF}, {0x0376 & 0xFF, 0x0377 & 0xFF}, @@ -46,16 +43,19 @@ static const uint8_t unicode_rangetab[][2]={ {0x048a & 0xFF, 0x04ff & 0xFF}, {0x0500 & 0xFF, 0x052f & 0xFF}, {0x0531 & 0xFF, 0x0556 & 0xFF}, - {0x0559 & 0xFF, 0x0559 & 0xFF}, - {0x0561 & 0xFF, 0x0587 & 0xFF}, + {0x0559 & 0xFF, 0x055c & 0xFF}, + {0x055e & 0xFF, 0x055e & 0xFF}, + {0x055f & 0xFF, 0x055f & 0xFF}, + {0x0560 & 0xFF, 0x0588 & 0xFF}, {0x0589 & 0xFF, 0x0589 & 0xFF}, + {0x058a & 0xFF, 0x058a & 0xFF}, {0x0591 & 0xFF, 0x05bd & 0xFF}, {0x05bf & 0xFF, 0x05bf & 0xFF}, {0x05c1 & 0xFF, 0x05c2 & 0xFF}, {0x05c4 & 0xFF, 0x05c5 & 0xFF}, {0x05c7 & 0xFF, 0x05c7 & 0xFF}, {0x05d0 & 0xFF, 0x05ea & 0xFF}, - {0x05f0 & 0xFF, 0x05f2 & 0xFF}, + {0x05ef & 0xFF, 0x05f2 & 0xFF}, {0x05f3 & 0xFF, 0x05f3 & 0xFF}, {0x05f4 & 0xFF, 0x05f4 & 0xFF}, {0x0600 & 0xFF, 0x0605 & 0xFF}, @@ -95,6 +95,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x07f4 & 0xFF, 0x07f5 & 0xFF}, {0x07f8 & 0xFF, 0x07f8 & 0xFF}, {0x07fa & 0xFF, 0x07fa & 0xFF}, + {0x07fd & 0xFF, 0x07fd & 0xFF}, {0x0800 & 0xFF, 0x0815 & 0xFF}, {0x0816 & 0xFF, 0x0819 & 0xFF}, {0x081a & 0xFF, 0x081a & 0xFF}, @@ -105,7 +106,11 @@ static const uint8_t unicode_rangetab[][2]={ {0x0829 & 0xFF, 0x082d & 0xFF}, {0x0840 & 0xFF, 0x0858 & 0xFF}, {0x0859 & 0xFF, 0x085b & 0xFF}, + {0x0860 & 0xFF, 0x086a & 0xFF}, {0x08a0 & 0xFF, 0x08b4 & 0xFF}, + {0x08b6 & 0xFF, 0x08c7 & 0xFF}, + {0x08d3 & 0xFF, 0x08e1 & 0xFF}, + {0x08e2 & 0xFF, 0x08e2 & 0xFF}, {0x08e3 & 0xFF, 0x08ff & 0xFF}, {0x0900 & 0xFF, 0x0903 & 0xFF}, {0x0904 & 0xFF, 0x0939 & 0xFF}, @@ -137,6 +142,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x09e2 & 0xFF, 0x09e3 & 0xFF}, {0x09e6 & 0xFF, 0x09ef & 0xFF}, {0x09f0 & 0xFF, 0x09f1 & 0xFF}, + {0x09fc & 0xFF, 0x09fc & 0xFF}, + {0x09fe & 0xFF, 0x09fe & 0xFF}, {0x0a01 & 0xFF, 0x0a03 & 0xFF}, {0x0a05 & 0xFF, 0x0a0a & 0xFF}, {0x0a0f & 0xFF, 0x0a10 & 0xFF}, @@ -173,6 +180,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0ae2 & 0xFF, 0x0ae3 & 0xFF}, {0x0ae6 & 0xFF, 0x0aef & 0xFF}, {0x0af9 & 0xFF, 0x0af9 & 0xFF}, + {0x0afa & 0xFF, 0x0aff & 0xFF}, {0x0b01 & 0xFF, 0x0b03 & 0xFF}, {0x0b05 & 0xFF, 0x0b0c & 0xFF}, {0x0b0f & 0xFF, 0x0b10 & 0xFF}, @@ -185,7 +193,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0b3e & 0xFF, 0x0b44 & 0xFF}, {0x0b47 & 0xFF, 0x0b48 & 0xFF}, {0x0b4b & 0xFF, 0x0b4d & 0xFF}, - {0x0b56 & 0xFF, 0x0b57 & 0xFF}, + {0x0b55 & 0xFF, 0x0b57 & 0xFF}, {0x0b5c & 0xFF, 0x0b5d & 0xFF}, {0x0b5f & 0xFF, 0x0b61 & 0xFF}, {0x0b62 & 0xFF, 0x0b63 & 0xFF}, @@ -208,7 +216,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0bd0 & 0xFF, 0x0bd0 & 0xFF}, {0x0bd7 & 0xFF, 0x0bd7 & 0xFF}, {0x0be6 & 0xFF, 0x0bef & 0xFF}, - {0x0c00 & 0xFF, 0x0c03 & 0xFF}, + {0x0c00 & 0xFF, 0x0c04 & 0xFF}, {0x0c05 & 0xFF, 0x0c0c & 0xFF}, {0x0c0e & 0xFF, 0x0c10 & 0xFF}, {0x0c12 & 0xFF, 0x0c28 & 0xFF}, @@ -222,6 +230,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0c60 & 0xFF, 0x0c61 & 0xFF}, {0x0c62 & 0xFF, 0x0c63 & 0xFF}, {0x0c66 & 0xFF, 0x0c6f & 0xFF}, + {0x0c80 & 0xFF, 0x0c80 & 0xFF}, {0x0c81 & 0xFF, 0x0c83 & 0xFF}, {0x0c85 & 0xFF, 0x0c8c & 0xFF}, {0x0c8e & 0xFF, 0x0c90 & 0xFF}, @@ -239,21 +248,23 @@ static const uint8_t unicode_rangetab[][2]={ {0x0ce2 & 0xFF, 0x0ce3 & 0xFF}, {0x0ce6 & 0xFF, 0x0cef & 0xFF}, {0x0cf1 & 0xFF, 0x0cf2 & 0xFF}, - {0x0d01 & 0xFF, 0x0d03 & 0xFF}, - {0x0d05 & 0xFF, 0x0d0c & 0xFF}, + {0x0d00 & 0xFF, 0x0d03 & 0xFF}, + {0x0d04 & 0xFF, 0x0d0c & 0xFF}, {0x0d0e & 0xFF, 0x0d10 & 0xFF}, {0x0d12 & 0xFF, 0x0d3a & 0xFF}, + {0x0d3b & 0xFF, 0x0d3c & 0xFF}, {0x0d3d & 0xFF, 0x0d3d & 0xFF}, {0x0d3e & 0xFF, 0x0d44 & 0xFF}, {0x0d46 & 0xFF, 0x0d48 & 0xFF}, {0x0d4a & 0xFF, 0x0d4d & 0xFF}, {0x0d4e & 0xFF, 0x0d4e & 0xFF}, + {0x0d54 & 0xFF, 0x0d56 & 0xFF}, {0x0d57 & 0xFF, 0x0d57 & 0xFF}, {0x0d5f & 0xFF, 0x0d61 & 0xFF}, {0x0d62 & 0xFF, 0x0d63 & 0xFF}, {0x0d66 & 0xFF, 0x0d6f & 0xFF}, {0x0d7a & 0xFF, 0x0d7f & 0xFF}, - {0x0d82 & 0xFF, 0x0d83 & 0xFF}, + {0x0d81 & 0xFF, 0x0d83 & 0xFF}, {0x0d85 & 0xFF, 0x0d96 & 0xFF}, {0x0d9a & 0xFF, 0x0db1 & 0xFF}, {0x0db3 & 0xFF, 0x0dbb & 0xFF}, @@ -270,8 +281,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x0e47 & 0xFF, 0x0e4e & 0xFF}, {0x0e50 & 0xFF, 0x0e59 & 0xFF}, {0x0eb1 & 0xFF, 0x0eb1 & 0xFF}, - {0x0eb4 & 0xFF, 0x0eb9 & 0xFF}, - {0x0ebb & 0xFF, 0x0ebc & 0xFF}, + {0x0eb4 & 0xFF, 0x0ebc & 0xFF}, {0x0ec8 & 0xFF, 0x0ecd & 0xFF}, {0x0ed0 & 0xFF, 0x0ed9 & 0xFF}, {0x0f00 & 0xFF, 0x0f00 & 0xFF}, @@ -331,6 +341,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1500 & 0xFF, 0x15ff & 0xFF}, {0x1600 & 0xFF, 0x166c & 0xFF}, {0x166f & 0xFF, 0x167f & 0xFF}, + {0x1680 & 0xFF, 0x1680 & 0xFF}, {0x1681 & 0xFF, 0x169a & 0xFF}, {0x16a0 & 0xFF, 0x16ea & 0xFF}, {0x16ee & 0xFF, 0x16f8 & 0xFF}, @@ -350,8 +361,10 @@ static const uint8_t unicode_rangetab[][2]={ {0x180b & 0xFF, 0x180d & 0xFF}, {0x180e & 0xFF, 0x180e & 0xFF}, {0x1810 & 0xFF, 0x1819 & 0xFF}, - {0x1820 & 0xFF, 0x1877 & 0xFF}, - {0x1880 & 0xFF, 0x18a8 & 0xFF}, + {0x1820 & 0xFF, 0x1878 & 0xFF}, + {0x1880 & 0xFF, 0x1884 & 0xFF}, + {0x1885 & 0xFF, 0x1886 & 0xFF}, + {0x1887 & 0xFF, 0x18a8 & 0xFF}, {0x18a9 & 0xFF, 0x18a9 & 0xFF}, {0x18aa & 0xFF, 0x18aa & 0xFF}, {0x18b0 & 0xFF, 0x18f5 & 0xFF}, @@ -367,7 +380,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1a7f & 0xFF, 0x1a7f & 0xFF}, {0x1a80 & 0xFF, 0x1a89 & 0xFF}, {0x1a90 & 0xFF, 0x1a99 & 0xFF}, - {0x1ab0 & 0xFF, 0x1abe & 0xFF}, + {0x1ab0 & 0xFF, 0x1ac0 & 0xFF}, {0x1b00 & 0xFF, 0x1b04 & 0xFF}, {0x1b05 & 0xFF, 0x1b33 & 0xFF}, {0x1b34 & 0xFF, 0x1b44 & 0xFF}, @@ -387,17 +400,21 @@ static const uint8_t unicode_rangetab[][2]={ {0x1c4d & 0xFF, 0x1c4f & 0xFF}, {0x1c50 & 0xFF, 0x1c59 & 0xFF}, {0x1c5a & 0xFF, 0x1c7d & 0xFF}, + {0x1c80 & 0xFF, 0x1c88 & 0xFF}, + {0x1c90 & 0xFF, 0x1cba & 0xFF}, + {0x1cbd & 0xFF, 0x1cbf & 0xFF}, {0x1cd0 & 0xFF, 0x1cd2 & 0xFF}, {0x1cd4 & 0xFF, 0x1ce8 & 0xFF}, {0x1ce9 & 0xFF, 0x1cec & 0xFF}, {0x1ced & 0xFF, 0x1ced & 0xFF}, - {0x1cee & 0xFF, 0x1cf1 & 0xFF}, - {0x1cf2 & 0xFF, 0x1cf4 & 0xFF}, + {0x1cee & 0xFF, 0x1cf3 & 0xFF}, + {0x1cf4 & 0xFF, 0x1cf4 & 0xFF}, {0x1cf5 & 0xFF, 0x1cf6 & 0xFF}, - {0x1cf8 & 0xFF, 0x1cf9 & 0xFF}, + {0x1cf7 & 0xFF, 0x1cf9 & 0xFF}, + {0x1cfa & 0xFF, 0x1cfa & 0xFF}, {0x1d00 & 0xFF, 0x1dbf & 0xFF}, - {0x1dc0 & 0xFF, 0x1df5 & 0xFF}, - {0x1dfc & 0xFF, 0x1dff & 0xFF}, + {0x1dc0 & 0xFF, 0x1df9 & 0xFF}, + {0x1dfb & 0xFF, 0x1dff & 0xFF}, {0x1e00 & 0xFF, 0x1eff & 0xFF}, {0x1f00 & 0xFF, 0x1f15 & 0xFF}, {0x1f18 & 0xFF, 0x1f1d & 0xFF}, @@ -418,16 +435,21 @@ static const uint8_t unicode_rangetab[][2]={ {0x1fe0 & 0xFF, 0x1fec & 0xFF}, {0x1ff2 & 0xFF, 0x1ff4 & 0xFF}, {0x1ff6 & 0xFF, 0x1ffc & 0xFF}, - {0x200c & 0xFF, 0x200d & 0xFF}, + {0x2000 & 0xFF, 0x2006 & 0xFF}, + {0x2008 & 0xFF, 0x200a & 0xFF}, + {0x200c & 0xFF, 0x200c & 0xFF}, + {0x200d & 0xFF, 0x200d & 0xFF}, {0x200e & 0xFF, 0x200f & 0xFF}, {0x2018 & 0xFF, 0x2019 & 0xFF}, {0x2024 & 0xFF, 0x2024 & 0xFF}, {0x2027 & 0xFF, 0x2027 & 0xFF}, {0x2028 & 0xFF, 0x2029 & 0xFF}, {0x202a & 0xFF, 0x202e & 0xFF}, + {0x202f & 0xFF, 0x202f & 0xFF}, {0x203f & 0xFF, 0x2040 & 0xFF}, {0x2044 & 0xFF, 0x2044 & 0xFF}, {0x2054 & 0xFF, 0x2054 & 0xFF}, + {0x205f & 0xFF, 0x205f & 0xFF}, {0x2060 & 0xFF, 0x2064 & 0xFF}, {0x2066 & 0xFF, 0x206f & 0xFF}, {0x2071 & 0xFF, 0x2071 & 0xFF}, @@ -472,6 +494,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x2dd8 & 0xFF, 0x2dde & 0xFF}, {0x2de0 & 0xFF, 0x2dff & 0xFF}, {0x2e2f & 0xFF, 0x2e2f & 0xFF}, + {0x3000 & 0xFF, 0x3000 & 0xFF}, {0x3005 & 0xFF, 0x3005 & 0xFF}, {0x302a & 0xFF, 0x302f & 0xFF}, {0x3031 & 0xFF, 0x3035 & 0xFF}, @@ -480,9 +503,9 @@ static const uint8_t unicode_rangetab[][2]={ {0x309b & 0xFF, 0x309c & 0xFF}, {0x30a0 & 0xFF, 0x30fa & 0xFF}, {0x30fc & 0xFF, 0x30ff & 0xFF}, - {0x3105 & 0xFF, 0x312d & 0xFF}, + {0x3105 & 0xFF, 0x312f & 0xFF}, {0x3131 & 0xFF, 0x318e & 0xFF}, - {0x31a0 & 0xFF, 0x31ba & 0xFF}, + {0x31a0 & 0xFF, 0x31bf & 0xFF}, {0x31f0 & 0xFF, 0x31ff & 0xFF}, {0x32d0 & 0xFF, 0x32fe & 0xFF}, {0x3300 & 0xFF, 0x3357 & 0xFF}, @@ -504,11 +527,9 @@ static const uint8_t unicode_rangetab[][2]={ {0xa69e & 0xFF, 0xa69f & 0xFF}, {0xa6a0 & 0xFF, 0xa6ef & 0xFF}, {0xa6f0 & 0xFF, 0xa6f1 & 0xFF}, - {0xa717 & 0xFF, 0xa71f & 0xFF}, - {0xa722 & 0xFF, 0xa788 & 0xFF}, - {0xa78b & 0xFF, 0xa7ad & 0xFF}, - {0xa7b0 & 0xFF, 0xa7b7 & 0xFF}, - {0xa7f7 & 0xFF, 0xa7ff & 0xFF}, + {0xa708 & 0xFF, 0xa7bf & 0xFF}, + {0xa7c2 & 0xFF, 0xa7ca & 0xFF}, + {0xa7f5 & 0xFF, 0xa7ff & 0xFF}, {0xa800 & 0xFF, 0xa801 & 0xFF}, {0xa802 & 0xFF, 0xa802 & 0xFF}, {0xa803 & 0xFF, 0xa805 & 0xFF}, @@ -517,15 +538,17 @@ static const uint8_t unicode_rangetab[][2]={ {0xa80b & 0xFF, 0xa80b & 0xFF}, {0xa80c & 0xFF, 0xa822 & 0xFF}, {0xa823 & 0xFF, 0xa827 & 0xFF}, + {0xa82c & 0xFF, 0xa82c & 0xFF}, {0xa840 & 0xFF, 0xa873 & 0xFF}, {0xa880 & 0xFF, 0xa881 & 0xFF}, {0xa882 & 0xFF, 0xa8b3 & 0xFF}, - {0xa8b4 & 0xFF, 0xa8c4 & 0xFF}, + {0xa8b4 & 0xFF, 0xa8c5 & 0xFF}, {0xa8d0 & 0xFF, 0xa8d9 & 0xFF}, {0xa8e0 & 0xFF, 0xa8f1 & 0xFF}, {0xa8f2 & 0xFF, 0xa8f7 & 0xFF}, {0xa8fb & 0xFF, 0xa8fb & 0xFF}, - {0xa8fd & 0xFF, 0xa8fd & 0xFF}, + {0xa8fd & 0xFF, 0xa8fe & 0xFF}, + {0xa8ff & 0xFF, 0xa8ff & 0xFF}, {0xa900 & 0xFF, 0xa909 & 0xFF}, {0xa90a & 0xFF, 0xa925 & 0xFF}, {0xa926 & 0xFF, 0xa92d & 0xFF}, @@ -561,8 +584,7 @@ static const uint8_t unicode_rangetab[][2]={ {0xab11 & 0xFF, 0xab16 & 0xFF}, {0xab20 & 0xFF, 0xab26 & 0xFF}, {0xab28 & 0xFF, 0xab2e & 0xFF}, - {0xab30 & 0xFF, 0xab5a & 0xFF}, - {0xab5c & 0xFF, 0xab65 & 0xFF}, + {0xab30 & 0xFF, 0xab69 & 0xFF}, {0xab70 & 0xFF, 0xabe2 & 0xFF}, {0xabe3 & 0xFF, 0xabea & 0xFF}, {0xabec & 0xFF, 0xabed & 0xFF}, @@ -648,6 +670,7 @@ static const uint8_t unicode_rangetab[][2]={ {0xff07 & 0xFF, 0xff07 & 0xFF}, {0xff0c & 0xFF, 0xff0c & 0xFF}, {0xff0e & 0xFF, 0xff0e & 0xFF}, + {0xff10 & 0xFF, 0xff19 & 0xFF}, {0xff1a & 0xFF, 0xff1a & 0xFF}, {0xff1b & 0xFF, 0xff1b & 0xFF}, {0xff21 & 0xFF, 0xff3a & 0xFF}, @@ -674,7 +697,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x102a0 & 0xFF, 0x102d0 & 0xFF}, {0x102e0 & 0xFF, 0x102e0 & 0xFF}, {0x10300 & 0xFF, 0x1031f & 0xFF}, - {0x10330 & 0xFF, 0x1034a & 0xFF}, + {0x1032d & 0xFF, 0x1034a & 0xFF}, {0x10350 & 0xFF, 0x10375 & 0xFF}, {0x10376 & 0xFF, 0x1037a & 0xFF}, {0x10380 & 0xFF, 0x1039d & 0xFF}, @@ -683,6 +706,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x103d1 & 0xFF, 0x103d5 & 0xFF}, {0x10400 & 0xFF, 0x1049d & 0xFF}, {0x104a0 & 0xFF, 0x104a9 & 0xFF}, + {0x104b0 & 0xFF, 0x104d3 & 0xFF}, + {0x104d8 & 0xFF, 0x104fb & 0xFF}, {0x10500 & 0xFF, 0x10527 & 0xFF}, {0x10530 & 0xFF, 0x10563 & 0xFF}, {0x10600 & 0xFF, 0x106ff & 0xFF}, @@ -709,7 +734,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x10a0c & 0xFF, 0x10a0f & 0xFF}, {0x10a10 & 0xFF, 0x10a13 & 0xFF}, {0x10a15 & 0xFF, 0x10a17 & 0xFF}, - {0x10a19 & 0xFF, 0x10a33 & 0xFF}, + {0x10a19 & 0xFF, 0x10a35 & 0xFF}, {0x10a38 & 0xFF, 0x10a3a & 0xFF}, {0x10a3f & 0xFF, 0x10a3f & 0xFF}, {0x10a60 & 0xFF, 0x10a7c & 0xFF}, @@ -724,6 +749,18 @@ static const uint8_t unicode_rangetab[][2]={ {0x10c00 & 0xFF, 0x10c48 & 0xFF}, {0x10c80 & 0xFF, 0x10cb2 & 0xFF}, {0x10cc0 & 0xFF, 0x10cf2 & 0xFF}, + {0x10d00 & 0xFF, 0x10d23 & 0xFF}, + {0x10d24 & 0xFF, 0x10d27 & 0xFF}, + {0x10d30 & 0xFF, 0x10d39 & 0xFF}, + {0x10e80 & 0xFF, 0x10ea9 & 0xFF}, + {0x10eab & 0xFF, 0x10eac & 0xFF}, + {0x10eb0 & 0xFF, 0x10eb1 & 0xFF}, + {0x10f00 & 0xFF, 0x10f1c & 0xFF}, + {0x10f27 & 0xFF, 0x10f27 & 0xFF}, + {0x10f30 & 0xFF, 0x10f45 & 0xFF}, + {0x10f46 & 0xFF, 0x10f50 & 0xFF}, + {0x10fb0 & 0xFF, 0x10fc4 & 0xFF}, + {0x10fe0 & 0xFF, 0x10ff6 & 0xFF}, {0x11000 & 0xFF, 0x11002 & 0xFF}, {0x11003 & 0xFF, 0x11037 & 0xFF}, {0x11038 & 0xFF, 0x11046 & 0xFF}, @@ -732,12 +769,16 @@ static const uint8_t unicode_rangetab[][2]={ {0x11083 & 0xFF, 0x110af & 0xFF}, {0x110b0 & 0xFF, 0x110ba & 0xFF}, {0x110bd & 0xFF, 0x110bd & 0xFF}, + {0x110cd & 0xFF, 0x110cd & 0xFF}, {0x110d0 & 0xFF, 0x110e8 & 0xFF}, {0x110f0 & 0xFF, 0x110f9 & 0xFF}, {0x11100 & 0xFF, 0x11102 & 0xFF}, {0x11103 & 0xFF, 0x11126 & 0xFF}, {0x11127 & 0xFF, 0x11134 & 0xFF}, {0x11136 & 0xFF, 0x1113f & 0xFF}, + {0x11144 & 0xFF, 0x11144 & 0xFF}, + {0x11145 & 0xFF, 0x11146 & 0xFF}, + {0x11147 & 0xFF, 0x11147 & 0xFF}, {0x11150 & 0xFF, 0x11172 & 0xFF}, {0x11173 & 0xFF, 0x11173 & 0xFF}, {0x11176 & 0xFF, 0x11176 & 0xFF}, @@ -745,13 +786,15 @@ static const uint8_t unicode_rangetab[][2]={ {0x11183 & 0xFF, 0x111b2 & 0xFF}, {0x111b3 & 0xFF, 0x111c0 & 0xFF}, {0x111c1 & 0xFF, 0x111c4 & 0xFF}, - {0x111ca & 0xFF, 0x111cc & 0xFF}, + {0x111c9 & 0xFF, 0x111cc & 0xFF}, + {0x111ce & 0xFF, 0x111cf & 0xFF}, {0x111d0 & 0xFF, 0x111d9 & 0xFF}, {0x111da & 0xFF, 0x111da & 0xFF}, {0x111dc & 0xFF, 0x111dc & 0xFF}, {0x11200 & 0xFF, 0x11211 & 0xFF}, {0x11213 & 0xFF, 0x1122b & 0xFF}, {0x1122c & 0xFF, 0x11237 & 0xFF}, + {0x1123e & 0xFF, 0x1123e & 0xFF}, {0x11280 & 0xFF, 0x11286 & 0xFF}, {0x11288 & 0xFF, 0x11288 & 0xFF}, {0x1128a & 0xFF, 0x1128d & 0xFF}, @@ -767,7 +810,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x1132a & 0xFF, 0x11330 & 0xFF}, {0x11332 & 0xFF, 0x11333 & 0xFF}, {0x11335 & 0xFF, 0x11339 & 0xFF}, - {0x1133c & 0xFF, 0x1133c & 0xFF}, + {0x1133b & 0xFF, 0x1133c & 0xFF}, {0x1133d & 0xFF, 0x1133d & 0xFF}, {0x1133e & 0xFF, 0x11344 & 0xFF}, {0x11347 & 0xFF, 0x11348 & 0xFF}, @@ -778,6 +821,12 @@ static const uint8_t unicode_rangetab[][2]={ {0x11362 & 0xFF, 0x11363 & 0xFF}, {0x11366 & 0xFF, 0x1136c & 0xFF}, {0x11370 & 0xFF, 0x11374 & 0xFF}, + {0x11400 & 0xFF, 0x11434 & 0xFF}, + {0x11435 & 0xFF, 0x11446 & 0xFF}, + {0x11447 & 0xFF, 0x1144a & 0xFF}, + {0x11450 & 0xFF, 0x11459 & 0xFF}, + {0x1145e & 0xFF, 0x1145e & 0xFF}, + {0x1145f & 0xFF, 0x11461 & 0xFF}, {0x11480 & 0xFF, 0x114af & 0xFF}, {0x114b0 & 0xFF, 0x114c3 & 0xFF}, {0x114c4 & 0xFF, 0x114c5 & 0xFF}, @@ -794,13 +843,78 @@ static const uint8_t unicode_rangetab[][2]={ {0x11650 & 0xFF, 0x11659 & 0xFF}, {0x11680 & 0xFF, 0x116aa & 0xFF}, {0x116ab & 0xFF, 0x116b7 & 0xFF}, + {0x116b8 & 0xFF, 0x116b8 & 0xFF}, {0x116c0 & 0xFF, 0x116c9 & 0xFF}, {0x1171d & 0xFF, 0x1172b & 0xFF}, {0x11730 & 0xFF, 0x11739 & 0xFF}, + {0x11800 & 0xFF, 0x1182b & 0xFF}, + {0x1182c & 0xFF, 0x1183a & 0xFF}, {0x118a0 & 0xFF, 0x118df & 0xFF}, {0x118e0 & 0xFF, 0x118e9 & 0xFF}, {0x118ff & 0xFF, 0x118ff & 0xFF}, + {0x11900 & 0xFF, 0x11906 & 0xFF}, + {0x11909 & 0xFF, 0x11909 & 0xFF}, + {0x1190c & 0xFF, 0x11913 & 0xFF}, + {0x11915 & 0xFF, 0x11916 & 0xFF}, + {0x11918 & 0xFF, 0x1192f & 0xFF}, + {0x11930 & 0xFF, 0x11935 & 0xFF}, + {0x11937 & 0xFF, 0x11938 & 0xFF}, + {0x1193b & 0xFF, 0x1193e & 0xFF}, + {0x1193f & 0xFF, 0x1193f & 0xFF}, + {0x11940 & 0xFF, 0x11940 & 0xFF}, + {0x11941 & 0xFF, 0x11941 & 0xFF}, + {0x11942 & 0xFF, 0x11943 & 0xFF}, + {0x11950 & 0xFF, 0x11959 & 0xFF}, + {0x119a0 & 0xFF, 0x119a7 & 0xFF}, + {0x119aa & 0xFF, 0x119d0 & 0xFF}, + {0x119d1 & 0xFF, 0x119d7 & 0xFF}, + {0x119da & 0xFF, 0x119e0 & 0xFF}, + {0x119e1 & 0xFF, 0x119e1 & 0xFF}, + {0x119e3 & 0xFF, 0x119e3 & 0xFF}, + {0x119e4 & 0xFF, 0x119e4 & 0xFF}, + {0x11a00 & 0xFF, 0x11a00 & 0xFF}, + {0x11a01 & 0xFF, 0x11a0a & 0xFF}, + {0x11a0b & 0xFF, 0x11a32 & 0xFF}, + {0x11a33 & 0xFF, 0x11a39 & 0xFF}, + {0x11a3a & 0xFF, 0x11a3a & 0xFF}, + {0x11a3b & 0xFF, 0x11a3e & 0xFF}, + {0x11a47 & 0xFF, 0x11a47 & 0xFF}, + {0x11a50 & 0xFF, 0x11a50 & 0xFF}, + {0x11a51 & 0xFF, 0x11a5b & 0xFF}, + {0x11a5c & 0xFF, 0x11a89 & 0xFF}, + {0x11a8a & 0xFF, 0x11a99 & 0xFF}, + {0x11a9d & 0xFF, 0x11a9d & 0xFF}, {0x11ac0 & 0xFF, 0x11af8 & 0xFF}, + {0x11c00 & 0xFF, 0x11c08 & 0xFF}, + {0x11c0a & 0xFF, 0x11c2e & 0xFF}, + {0x11c2f & 0xFF, 0x11c36 & 0xFF}, + {0x11c38 & 0xFF, 0x11c3f & 0xFF}, + {0x11c40 & 0xFF, 0x11c40 & 0xFF}, + {0x11c50 & 0xFF, 0x11c59 & 0xFF}, + {0x11c72 & 0xFF, 0x11c8f & 0xFF}, + {0x11c92 & 0xFF, 0x11ca7 & 0xFF}, + {0x11ca9 & 0xFF, 0x11cb6 & 0xFF}, + {0x11d00 & 0xFF, 0x11d06 & 0xFF}, + {0x11d08 & 0xFF, 0x11d09 & 0xFF}, + {0x11d0b & 0xFF, 0x11d30 & 0xFF}, + {0x11d31 & 0xFF, 0x11d36 & 0xFF}, + {0x11d3a & 0xFF, 0x11d3a & 0xFF}, + {0x11d3c & 0xFF, 0x11d3d & 0xFF}, + {0x11d3f & 0xFF, 0x11d45 & 0xFF}, + {0x11d46 & 0xFF, 0x11d46 & 0xFF}, + {0x11d47 & 0xFF, 0x11d47 & 0xFF}, + {0x11d50 & 0xFF, 0x11d59 & 0xFF}, + {0x11d60 & 0xFF, 0x11d65 & 0xFF}, + {0x11d67 & 0xFF, 0x11d68 & 0xFF}, + {0x11d6a & 0xFF, 0x11d89 & 0xFF}, + {0x11d8a & 0xFF, 0x11d8e & 0xFF}, + {0x11d90 & 0xFF, 0x11d91 & 0xFF}, + {0x11d93 & 0xFF, 0x11d97 & 0xFF}, + {0x11d98 & 0xFF, 0x11d98 & 0xFF}, + {0x11da0 & 0xFF, 0x11da9 & 0xFF}, + {0x11ee0 & 0xFF, 0x11ef2 & 0xFF}, + {0x11ef3 & 0xFF, 0x11ef6 & 0xFF}, + {0x11fb0 & 0xFF, 0x11fb0 & 0xFF}, {0x12000 & 0xFF, 0x120ff & 0xFF}, {0x12100 & 0xFF, 0x121ff & 0xFF}, {0x12200 & 0xFF, 0x122ff & 0xFF}, @@ -813,6 +927,7 @@ static const uint8_t unicode_rangetab[][2]={ {0x13200 & 0xFF, 0x132ff & 0xFF}, {0x13300 & 0xFF, 0x133ff & 0xFF}, {0x13400 & 0xFF, 0x1342e & 0xFF}, + {0x13430 & 0xFF, 0x13438 & 0xFF}, {0x14400 & 0xFF, 0x144ff & 0xFF}, {0x14500 & 0xFF, 0x145ff & 0xFF}, {0x14600 & 0xFF, 0x14646 & 0xFF}, @@ -829,12 +944,19 @@ static const uint8_t unicode_rangetab[][2]={ {0x16b50 & 0xFF, 0x16b59 & 0xFF}, {0x16b63 & 0xFF, 0x16b77 & 0xFF}, {0x16b7d & 0xFF, 0x16b8f & 0xFF}, - {0x16f00 & 0xFF, 0x16f44 & 0xFF}, + {0x16e40 & 0xFF, 0x16e7f & 0xFF}, + {0x16f00 & 0xFF, 0x16f4a & 0xFF}, + {0x16f4f & 0xFF, 0x16f4f & 0xFF}, {0x16f50 & 0xFF, 0x16f50 & 0xFF}, - {0x16f51 & 0xFF, 0x16f7e & 0xFF}, + {0x16f51 & 0xFF, 0x16f87 & 0xFF}, {0x16f8f & 0xFF, 0x16f92 & 0xFF}, {0x16f93 & 0xFF, 0x16f9f & 0xFF}, + {0x16fe0 & 0xFF, 0x16fe1 & 0xFF}, + {0x16fe3 & 0xFF, 0x16fe3 & 0xFF}, + {0x16fe4 & 0xFF, 0x16fe4 & 0xFF}, + {0x16ff0 & 0xFF, 0x16ff1 & 0xFF}, {0x1b000 & 0xFF, 0x1b000 & 0xFF}, + {0x1b164 & 0xFF, 0x1b167 & 0xFF}, {0x1bc00 & 0xFF, 0x1bc6a & 0xFF}, {0x1bc70 & 0xFF, 0x1bc7c & 0xFF}, {0x1bc80 & 0xFF, 0x1bc88 & 0xFF}, @@ -888,8 +1010,25 @@ static const uint8_t unicode_rangetab[][2]={ {0x1da84 & 0xFF, 0x1da84 & 0xFF}, {0x1da9b & 0xFF, 0x1da9f & 0xFF}, {0x1daa1 & 0xFF, 0x1daaf & 0xFF}, + {0x1e000 & 0xFF, 0x1e006 & 0xFF}, + {0x1e008 & 0xFF, 0x1e018 & 0xFF}, + {0x1e01b & 0xFF, 0x1e021 & 0xFF}, + {0x1e023 & 0xFF, 0x1e024 & 0xFF}, + {0x1e026 & 0xFF, 0x1e02a & 0xFF}, + {0x1e100 & 0xFF, 0x1e12c & 0xFF}, + {0x1e130 & 0xFF, 0x1e136 & 0xFF}, + {0x1e137 & 0xFF, 0x1e13d & 0xFF}, + {0x1e140 & 0xFF, 0x1e149 & 0xFF}, + {0x1e14e & 0xFF, 0x1e14e & 0xFF}, + {0x1e2c0 & 0xFF, 0x1e2eb & 0xFF}, + {0x1e2ec & 0xFF, 0x1e2ef & 0xFF}, + {0x1e2f0 & 0xFF, 0x1e2f9 & 0xFF}, {0x1e800 & 0xFF, 0x1e8c4 & 0xFF}, {0x1e8d0 & 0xFF, 0x1e8d6 & 0xFF}, + {0x1e900 & 0xFF, 0x1e943 & 0xFF}, + {0x1e944 & 0xFF, 0x1e94a & 0xFF}, + {0x1e94b & 0xFF, 0x1e94b & 0xFF}, + {0x1e950 & 0xFF, 0x1e959 & 0xFF}, {0x1ee00 & 0xFF, 0x1ee03 & 0xFF}, {0x1ee05 & 0xFF, 0x1ee1f & 0xFF}, {0x1ee21 & 0xFF, 0x1ee22 & 0xFF}, @@ -927,6 +1066,8 @@ static const uint8_t unicode_rangetab[][2]={ {0x1f150 & 0xFF, 0x1f169 & 0xFF}, {0x1f170 & 0xFF, 0x1f189 & 0xFF}, {0x1f1e6 & 0xFF, 0x1f1ff & 0xFF}, + {0x1f3fb & 0xFF, 0x1f3ff & 0xFF}, + {0x1fbf0 & 0xFF, 0x1fbf9 & 0xFF}, {0xe0001 & 0xFF, 0xe0001 & 0xFF}, {0xe0020 & 0xFF, 0xe007f & 0xFF}, {0xe0100 & 0xFF, 0xe01ef & 0xFF}}; @@ -935,6 +1076,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_LF, UNICODE_WB_Newline, UNICODE_WB_CR, + UNICODE_WB_WSegSpace, UNICODE_WB_Double_Quote, UNICODE_WB_Single_Quote, UNICODE_WB_MidNum, @@ -957,10 +1099,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, - UNICODE_WB_MidLetter, - UNICODE_WB_ALetter, - UNICODE_WB_ALetter, - UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -981,7 +1119,10 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_MidLetter, + UNICODE_WB_ALetter, UNICODE_WB_MidNum, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_Extend, @@ -1028,6 +1169,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_MidNum, UNICODE_WB_ALetter, + UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, @@ -1039,6 +1181,10 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Format, UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_ALetter, @@ -1070,6 +1216,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_Extend, UNICODE_WB_Numeric, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1107,6 +1255,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_Numeric, UNICODE_WB_ALetter, UNICODE_WB_Extend, + UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1155,6 +1304,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Numeric, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1176,11 +1326,13 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, @@ -1205,7 +1357,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_Extend, - UNICODE_WB_Extend, UNICODE_WB_Numeric, UNICODE_WB_ALetter, UNICODE_WB_Extend, @@ -1264,6 +1415,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_WSegSpace, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1287,6 +1439,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_Extend, @@ -1320,6 +1474,9 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Numeric, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_ALetter, @@ -1329,6 +1486,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_ALetter, @@ -1351,7 +1509,10 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_WSegSpace, + UNICODE_WB_WSegSpace, UNICODE_WB_Extend, + UNICODE_WB_ZWJ, UNICODE_WB_Format, UNICODE_WB_MidNumLet, UNICODE_WB_MidNumLet, @@ -1359,8 +1520,10 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_Newline, UNICODE_WB_Format, UNICODE_WB_ExtendNumLet, + UNICODE_WB_ExtendNumLet, UNICODE_WB_MidNum, UNICODE_WB_ExtendNumLet, + UNICODE_WB_WSegSpace, UNICODE_WB_Format, UNICODE_WB_Format, UNICODE_WB_ALetter, @@ -1405,6 +1568,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_WSegSpace, UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Katakana, @@ -1441,8 +1605,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, - UNICODE_WB_ALetter, - UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, @@ -1450,6 +1612,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, + UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, @@ -1459,6 +1622,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_Extend, UNICODE_WB_Numeric, UNICODE_WB_ALetter, UNICODE_WB_Extend, @@ -1496,7 +1660,6 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, - UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_Numeric, @@ -1581,6 +1744,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_MidNumLet, UNICODE_WB_MidNum, UNICODE_WB_MidNumLet, + UNICODE_WB_Numeric, UNICODE_WB_MidLetter, UNICODE_WB_MidNum, UNICODE_WB_ALetter, @@ -1637,6 +1801,8 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_Extend, @@ -1657,6 +1823,18 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Numeric, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, @@ -1665,6 +1843,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Format, + UNICODE_WB_Format, UNICODE_WB_ALetter, UNICODE_WB_Numeric, UNICODE_WB_Extend, @@ -1674,17 +1853,22 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, UNICODE_WB_Numeric, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_Extend, + UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1714,25 +1898,96 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_Numeric, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Numeric, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Numeric, UNICODE_WB_ALetter, UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Numeric, UNICODE_WB_Extend, + UNICODE_WB_Numeric, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Numeric, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_Extend, UNICODE_WB_Numeric, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, UNICODE_WB_Numeric, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, UNICODE_WB_Extend, UNICODE_WB_Numeric, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, UNICODE_WB_Numeric, UNICODE_WB_ALetter, + UNICODE_WB_Extend, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1746,6 +2001,7 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, + UNICODE_WB_Format, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1765,8 +2021,15 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_Katakana, UNICODE_WB_Katakana, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1821,8 +2084,25 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_Extend, UNICODE_WB_Extend, UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Numeric, + UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_Extend, + UNICODE_WB_Numeric, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Extend, + UNICODE_WB_ALetter, + UNICODE_WB_Numeric, UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_ALetter, @@ -1860,205 +2140,185 @@ static const uint8_t unicode_classtab[]={ UNICODE_WB_ALetter, UNICODE_WB_ALetter, UNICODE_WB_Regional_Indicator, + UNICODE_WB_Extend, + UNICODE_WB_Numeric, UNICODE_WB_Format, - UNICODE_WB_Format, + UNICODE_WB_Extend, UNICODE_WB_Extend}; static const size_t unicode_indextab[]={ 0, - 22, 23, - 29, + 24, + 26, + 39, 42, - 45, 59, 82, - 96, - 108, - 138, - 174, - 209, - 240, - 266, - 275, - 290, - 306, - 307, - 321, - 328, - 329, - 330, - 335, - 348, - 356, - 361, + 97, + 113, + 145, + 182, + 217, + 249, + 277, + 285, + 300, + 316, + 317, + 331, + 338, + 339, + 340, + 346, + 359, 369, + 374, 382, - 396, - 399, - 400, - 419, - 435, - 449, - 449, - 449, - 450, - 450, - 450, - 450, - 450, - 450, - 450, - 450, - 456, + 395, + 413, + 416, + 417, + 436, + 457, + 471, + 471, + 471, + 472, + 472, 472, - 473, - 473, - 481, - 485, - 486, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 487, - 488, - 489, - 490, - 491, - 493, + 472, + 472, + 472, + 472, + 472, + 478, 494, - 505, + 495, + 495, + 504, + 508, + 509, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, 510, - 527, - 540, - 557, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 510, + 511, + 512, + 513, + 514, + 516, + 517, + 528, + 531, + 550, + 563, 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, 590, 591, 592, @@ -2081,3375 +2341,3397 @@ static const size_t unicode_indextab[]={ 609, 610, 611, + 612, + 613, 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, - 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, 627, 628, + 629, + 630, + 631, 632, - 646, - 662, - 669, - 671, - 674, - 682, - 684, - 686, - 687, - 690, - 700, - 704, - 718, - 722, - 725, + 633, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 636, + 649, + 650, + 654, + 668, + 685, + 692, + 694, + 697, + 705, + 709, + 711, + 712, + 715, 725, - 725, - 725, - 735, + 729, + 743, + 747, 750, - 761, - 779, - 784, - 789, - 796, - 798, - 801, - 801, - 802, - 802, - 802, - 802, - 802, - 802, - 803, + 753, + 756, + 762, + 773, + 792, 804, - 805, - 806, - 808, - 809, - 809, - 809, - 809, - 809, - 809, - 809, - 809, - 809, - 809, - 809, - 810, - 811, - 812, - 813, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 814, - 815, - 816, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 817, - 818, - 819, - 824, - 830, - 830, - 830, - 830, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 835, - 836, - 836, - 836, - 836, - 836, - 836, - 836, - 836, - 836, - 836, - 836, - 836, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, - 842, + 822, + 833, + 838, + 846, 848, - 849, - 849, - 859, - 869, - 874, - 883, - 883, - 883, - 889, - 889, - 889, - 889, - 889, - 889, - 889, - 889, - 889, - 889, - 889, - 889, - 889, - 889, - 891, - 891, - 891, - 891, - 891, - 891, - 924, - 924, + 853, + 873, + 886, + 886, + 895, + 913, + 915, + 916, + 917, + 918, + 919, + 920, + 922, + 923, + 923, + 923, + 923, + 923, + 923, + 923, + 923, + 923, + 923, + 923, 924, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, - 928, + 925, + 926, + 927, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, + 929, 930, - 931}; + 931, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 932, + 933, + 934, + 939, + 945, + 945, + 945, + 946, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 956, + 957, + 958, + 958, + 958, + 958, + 958, + 958, + 958, + 958, + 958, + 958, + 958, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 964, + 970, + 971, + 971, + 981, + 991, + 996, + 1005, + 1005, + 1005, + 1011, + 1011, + 1011, + 1011, + 1011, + 1011, + 1016, + 1021, + 1024, + 1024, + 1024, + 1024, + 1024, + 1024, + 1026, + 1030, + 1030, + 1030, + 1030, + 1030, + 1063, + 1063, + 1063, + 1067, + 1067, + 1068, + 1068, + 1068, + 1068, + 1068, + 1068, + 1068, + 1068, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1069, + 1071, + 1072}; diff --git a/unicode/wordbreaktab_internal.h b/unicode/wordbreaktab_internal.h index 9ecdbbf..077a8db 100644 --- a/unicode/wordbreaktab_internal.h +++ b/unicode/wordbreaktab_internal.h @@ -25,5 +25,9 @@ #define UNICODE_WB_Double_Quote 0x0D #define UNICODE_WB_Hebrew_Letter 0x0E #define UNICODE_WB_Regional_Indicator 0x0F + +#define UNICODE_WB_ZWJ 0x10 +#define UNICODE_WB_WSegSpace 0x11 + #define UNICODE_WB_OTHER 0xFF #endif diff --git a/unicode/wordbreaktest.C b/unicode/wordbreaktest.C index 91e3c31..5df1e23 100644 --- a/unicode/wordbreaktest.C +++ b/unicode/wordbreaktest.C @@ -120,10 +120,9 @@ static void testsuite() exit(1); } - if (linenum == 24) - { - linenum=24; - } + //if (linenum != 986) + // continue; + collect_wordbreakflags flags; flags(ubuf.begin(), ubuf.end()); @@ -133,6 +132,15 @@ static void testsuite() { std::cerr << "Regression, line " << linenum << ": " << buf << std::endl; + std::cerr << "Calculated:"; + + for (auto f:flags.flags) + { + std::cerr << " " + << (f ? "÷":"×"); + } + std::cerr << " ÷ " << std::endl; + std::cerr << std::endl; exit(1); } } |
