From e62c19f12cfc377ac9ce7c037713ead5dc6b57d9 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 3 Apr 1998 15:46:53 +0000 Subject: Update. 1998-04-03 15:34 Ulrich Drepper * iconv/gconv_int.h: New file. Internal header. * iconv/Makefile (distribute): Add gconv_int.h. * iconv/gconv.h: Remove definition which are now in gconv_int.h. * iconv/gconv_builtin.c: Adopt for gconv_int.h introduction. * iconv/gconv_close.c: Likewise. * iconv/gconv_conf.c: Likewise. * iconv/gconv_db.c: Likewise. * iconv/gconv_dl.c: Likewise. * iconv/gconv_int.h: Likewise. * iconv/gconv_open.c: Likewise. * iconv/iconv.c: Likewise. * iconv/iconv_close.c: Likewise. * iconv/iconv_open.c: Likewise. * iconv/iconv_prog.c: Likewise. 1998-04-03 Ulrich Drepper * iconvdata/ksc5601.c: Correct Perl scripts and make them omit the missing braces. --- ChangeLog | 22 + iconv/Makefile | 2 +- iconv/gconv.h | 127 +-- iconv/gconv_builtin.c | 4 +- iconv/gconv_close.c | 6 +- iconv/gconv_conf.c | 4 +- iconv/gconv_db.c | 10 +- iconv/gconv_dl.c | 7 +- iconv/gconv_int.h | 153 +++ iconv/gconv_open.c | 6 +- iconv/iconv.c | 5 +- iconv/iconv_close.c | 4 +- iconv/iconv_open.c | 2 +- iconv/iconv_prog.c | 2 +- iconvdata/ksc5601.c | 2960 +++++++++++++++++++++++++------------------------ 15 files changed, 1701 insertions(+), 1613 deletions(-) create mode 100644 iconv/gconv_int.h diff --git a/ChangeLog b/ChangeLog index fd2197e646..98ead1266f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +1998-04-03 15:34 Ulrich Drepper + + * iconv/gconv_int.h: New file. Internal header. + * iconv/Makefile (distribute): Add gconv_int.h. + * iconv/gconv.h: Remove definition which are now in gconv_int.h. + * iconv/gconv_builtin.c: Adopt for gconv_int.h introduction. + * iconv/gconv_close.c: Likewise. + * iconv/gconv_conf.c: Likewise. + * iconv/gconv_db.c: Likewise. + * iconv/gconv_dl.c: Likewise. + * iconv/gconv_int.h: Likewise. + * iconv/gconv_open.c: Likewise. + * iconv/iconv.c: Likewise. + * iconv/iconv_close.c: Likewise. + * iconv/iconv_open.c: Likewise. + * iconv/iconv_prog.c: Likewise. + +1998-04-03 Ulrich Drepper + + * iconvdata/ksc5601.c: Correct Perl scripts and make them omit the + missing braces. + 1998-04-03 Thorsten Kukuk * nis/nis_table.c (nis_list): Fix FOLLOW_PATH and ALL_RESULTS flags. diff --git a/iconv/Makefile b/iconv/Makefile index f355a266d7..afe48d900a 100644 --- a/iconv/Makefile +++ b/iconv/Makefile @@ -25,7 +25,7 @@ headers = iconv.h gconv.h routines = iconv_open iconv iconv_close \ gconv_open gconv gconv_close gconv_db gconv_conf \ gconv_dl gconv_builtin gconv_simple -distribute = gconv_builtin.h +distribute = gconv_builtin.h gconv_int.h others = iconv_prog diff --git a/iconv/gconv.h b/iconv/gconv.h index 139ca0d5c8..76a719785e 100644 --- a/iconv/gconv.h +++ b/iconv/gconv.h @@ -1,6 +1,5 @@ /* Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1997. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as @@ -17,14 +16,16 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* This header provides no interface for a user to the internals of + the gconv implementation in the libc. Therefore there is no use + for these definitions beside for writing additional gconv modules. */ + #ifndef _GCONV_H #define _GCONV_H 1 #include -#include -#include - -__BEGIN_DECLS +#define __need_size_t +#include /* ISO 10646 value used to signal invalid value. */ #define UNKNOWN_10646_CHAR ((wchar_t) 0xfffd) @@ -47,18 +48,6 @@ enum }; -/* Structure for alias definition. Simply to strings. */ -struct gconv_alias -{ - __const char *fromname; - __const char *toname; -}; - - -/* Default size of intermediate buffers. */ -#define GCONV_DEFAULT_BUFSIZE 8160 - - /* Forward declarations. */ struct gconv_step; struct gconv_step_data; @@ -101,6 +90,7 @@ struct gconv_step_data void *data; /* Pointer to step-local data. */ }; + /* Combine conversion step description with data. */ typedef struct gconv_info { @@ -109,107 +99,4 @@ typedef struct gconv_info struct gconv_step_data *data; } *gconv_t; - -/* Description for an available conversion module. */ -struct gconv_module -{ - __const char *from_pattern; - __const char *from_constpfx; - size_t from_constpfx_len; - __const regex_t *from_regex; - - __const char *to_string; - - int cost; - - __const char *module_name; -}; - - -/* Global variables. */ - -/* Database of alias names. */ -extern void *__gconv_alias_db; - -/* Array with available modules. */ -extern size_t __gconv_nmodules; -extern struct gconv_module **__gconv_modules_db; - - -/* Return in *HANDLE decriptor for transformation from FROMSET to TOSET. */ -extern int __gconv_open __P ((__const char *__toset, __const char *__fromset, - gconv_t *__handle)); - -/* Free resources associated with transformation descriptor CD. */ -extern int __gconv_close __P ((gconv_t cd)); - -/* Transform at most *INBYTESLEFT bytes from buffer starting at *INBUF - according to rules described by CD and place up to *OUTBYTESLEFT - bytes in buffer starting at *OUTBUF. Return number of written - characters in *CONVERTED if this pointer is not null. */ -extern int __gconv __P ((gconv_t __cd, - __const char **__inbuf, size_t *__inbytesleft, - char **__outbuf, size_t *__outbytesleft, - size_t *__converted)); - -/* Return in *HANDLE a pointer to an array with *NSTEPS elements describing - the single steps necessary for transformation from FROMSET to TOSET. */ -extern int __gconv_find_transform __P ((__const char *__toset, - __const char *__fromset, - struct gconv_step **__handle, - size_t *__nsteps)); - -/* Read all the configuration data and cache it. */ -extern void __gconv_read_conf __P ((void)); - -/* Comparison function to search alias. */ -extern int __gconv_alias_compare __P ((__const void *__p1, - __const void *__p2)); - -/* Clear reference to transformation step implementations which might - cause the code to be unloaded. */ -extern int __gconv_close_transform __P ((struct gconv_step *__steps, - size_t __nsteps)); - - -/* Find in the shared object associated with HANDLE for a function with - name NAME. Return function pointer or NULL. */ -extern void *__gconv_find_func __P ((void *__handle, __const char *__name)); - -/* Load shared object named by NAME. If already loaded increment reference - count. */ -extern void *__gconv_find_shlib __P ((__const char *__name)); - -/* Release shared object. If no further reference is available unload - the object. */ -extern int __gconv_release_shlib __P ((void *__handle)); - -/* Fill STEP with information about builtin module with NAME. */ -extern void __gconv_get_builtin_trans __P ((__const char *__name, - struct gconv_step *__step)); - - - -/* Builtin transformations. */ -#ifdef _LIBC -# define __BUILTIN_TRANS(Name) \ - extern int Name __P ((struct gconv_step *__step, \ - struct gconv_step_data *__data, __const char *__inbuf,\ - size_t *__inlen, size_t *__written, int __do_flush)) - -__BUILTIN_TRANS (__gconv_transform_dummy); -__BUILTIN_TRANS (__gconv_transform_ucs4_utf8); -__BUILTIN_TRANS (__gconv_transform_utf8_ucs4); -__BUILTIN_TRANS (__gconv_transform_ucs2_ucs4); -__BUILTIN_TRANS (__gconv_transform_ucs4_ucs2); -# undef __BUITLIN_TRANS - -extern int __gconv_transform_init_rstate __P ((struct gconv_step *__step, - struct gconv_step_data *__data)); -extern void __gconv_transform_end_rstate __P ((struct gconv_step_data *__data)); - -#endif - -__END_DECLS - #endif /* gconv.h */ diff --git a/iconv/gconv_builtin.c b/iconv/gconv_builtin.c index 786a3c1e26..d913579ecc 100644 --- a/iconv/gconv_builtin.c +++ b/iconv/gconv_builtin.c @@ -18,9 +18,10 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include #include +#include + #include @@ -48,6 +49,7 @@ static struct builtin_map void +internal_function __gconv_get_builtin_trans (const char *name, struct gconv_step *step) { size_t cnt; diff --git a/iconv/gconv_close.c b/iconv/gconv_close.c index 912fa26d13..b6d5fbcd9d 100644 --- a/iconv/gconv_close.c +++ b/iconv/gconv_close.c @@ -1,5 +1,5 @@ /* Release any resource associated with given conversion descriptor. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -18,11 +18,13 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include #include +#include + int +internal_function __gconv_close (gconv_t cd) { struct gconv_step *srunp; diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c index 0c5ceef9e2..c448a160d2 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -20,7 +20,6 @@ #include #include -#include #include #include #include @@ -28,6 +27,8 @@ #include #include +#include + /* This is the default path where we look for module lists. */ static const char default_gconv_path[] = GCONV_PATH; @@ -369,6 +370,7 @@ read_conf_file (const char *filename, const char *directory, size_t dir_len, /* Read all configuration files found in the user-specified and the default path. */ void +internal_function __gconv_read_conf (void) { const char *user_path = __secure_getenv ("GCONV_PATH"); diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c index b1320ac7e8..5a3932c601 100644 --- a/iconv/gconv_db.c +++ b/iconv/gconv_db.c @@ -1,5 +1,5 @@ /* Provide access to the collection of available transformation modules. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -18,12 +18,13 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include #include #include #include #include +#include + /* Simple data structure for alias mapping. We have two names, `from' and `to'. */ @@ -93,6 +94,7 @@ static void *known_derivations; /* Look up whether given transformation was already requested before. */ static int +internal_function derivation_lookup (const char *fromset, const char *toset, struct gconv_step **handle, size_t *nsteps) { @@ -114,6 +116,7 @@ derivation_lookup (const char *fromset, const char *toset, /* Add new derivation to list of known ones. */ static void +internal_function add_derivation (const char *fromset, const char *toset, struct gconv_step *handle, size_t nsteps) { @@ -142,6 +145,7 @@ add_derivation (const char *fromset, const char *toset, } static void +internal_function free_derivation (void *p) { struct known_derivation *deriv = (struct known_derivation *) p; @@ -479,6 +483,7 @@ find_derivation (const char *toset, const char *toset_expand, int +internal_function __gconv_find_transform (const char *toset, const char *fromset, struct gconv_step **handle, size_t *nsteps) { @@ -523,6 +528,7 @@ __gconv_find_transform (const char *toset, const char *fromset, /* Release the entries of the modules list. */ int +internal_function __gconv_close_transform (struct gconv_step *steps, size_t nsteps) { int result = GCONV_OK; diff --git a/iconv/gconv_dl.c b/iconv/gconv_dl.c index a9a616663e..2a7cc92a3d 100644 --- a/iconv/gconv_dl.c +++ b/iconv/gconv_dl.c @@ -19,7 +19,6 @@ Boston, MA 02111-1307, USA. */ #include -#include #include #include #include @@ -28,6 +27,8 @@ #include #include +#include + /* This is a tuning parameter. If a transformation module is not used anymore it gets not immediately unloaded. Instead we wait a certain @@ -112,6 +113,7 @@ struct get_sym_args }; static void +internal_function get_sym (void *a) { struct get_sym_args *args = (struct get_sym_args *) a; @@ -123,6 +125,7 @@ get_sym (void *a) void * +internal_function __gconv_find_func (void *handle, const char *name) { struct get_sym_args args; @@ -139,6 +142,7 @@ __gconv_find_func (void *handle, const char *name) /* Open the gconv database if necessary. A non-negative return value means success. */ void * +internal_function __gconv_find_shlib (const char *name) { void *result = NULL; @@ -234,6 +238,7 @@ do_release_shlib (const void *nodep, VISIT value, int level) /* Notify system that a shared object is not longer needed. */ int +internal_function __gconv_release_shlib (void *handle) { /* Acquire the lock. */ diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h new file mode 100644 index 0000000000..5261284d7f --- /dev/null +++ b/iconv/gconv_int.h @@ -0,0 +1,153 @@ +/* Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _GCONV_INT_H +#define _GCONV_INT_H 1 + +#include "gconv.h" +#include + +__BEGIN_DECLS + + +/* Structure for alias definition. Simply to strings. */ +struct gconv_alias +{ + __const char *fromname; + __const char *toname; +}; + + +/* Default size of intermediate buffers. */ +#define GCONV_DEFAULT_BUFSIZE 8160 + + +/* Description for an available conversion module. */ +struct gconv_module +{ + __const char *from_pattern; + __const char *from_constpfx; + size_t from_constpfx_len; + __const regex_t *from_regex; + + __const char *to_string; + + int cost; + + __const char *module_name; +}; + + +/* Global variables. */ + +/* Database of alias names. */ +extern void *__gconv_alias_db; + +/* Array with available modules. */ +extern size_t __gconv_nmodules; +extern struct gconv_module **__gconv_modules_db; + + +/* Return in *HANDLE decriptor for transformation from FROMSET to TOSET. */ +extern int __gconv_open __P ((__const char *__toset, __const char *__fromset, + gconv_t *__handle)) + internal_function; + +/* Free resources associated with transformation descriptor CD. */ +extern int __gconv_close __P ((gconv_t cd)) + internal_function; + +/* Transform at most *INBYTESLEFT bytes from buffer starting at *INBUF + according to rules described by CD and place up to *OUTBYTESLEFT + bytes in buffer starting at *OUTBUF. Return number of written + characters in *CONVERTED if this pointer is not null. */ +extern int __gconv __P ((gconv_t __cd, + __const char **__inbuf, size_t *__inbytesleft, + char **__outbuf, size_t *__outbytesleft, + size_t *__converted)) + internal_function; + +/* Return in *HANDLE a pointer to an array with *NSTEPS elements describing + the single steps necessary for transformation from FROMSET to TOSET. */ +extern int __gconv_find_transform __P ((__const char *__toset, + __const char *__fromset, + struct gconv_step **__handle, + size_t *__nsteps)) + internal_function; + +/* Read all the configuration data and cache it. */ +extern void __gconv_read_conf __P ((void)) + internal_function; + +/* Comparison function to search alias. */ +extern int __gconv_alias_compare __P ((__const void *__p1, + __const void *__p2)); + +/* Clear reference to transformation step implementations which might + cause the code to be unloaded. */ +extern int __gconv_close_transform __P ((struct gconv_step *__steps, + size_t __nsteps)) + internal_function; + + +/* Find in the shared object associated with HANDLE for a function with + name NAME. Return function pointer or NULL. */ +extern void *__gconv_find_func __P ((void *__handle, __const char *__name)) + internal_function; + +/* Load shared object named by NAME. If already loaded increment reference + count. */ +extern void *__gconv_find_shlib __P ((__const char *__name)) + internal_function; + +/* Release shared object. If no further reference is available unload + the object. */ +extern int __gconv_release_shlib __P ((void *__handle)) + internal_function; + +/* Fill STEP with information about builtin module with NAME. */ +extern void __gconv_get_builtin_trans __P ((__const char *__name, + struct gconv_step *__step)) + internal_function; + + + +/* Builtin transformations. */ +#ifdef _LIBC +# define __BUILTIN_TRANS(Name) \ + extern int Name __P ((struct gconv_step *__step, \ + struct gconv_step_data *__data, __const char *__inbuf,\ + size_t *__inlen, size_t *__written, int __do_flush)) + +__BUILTIN_TRANS (__gconv_transform_dummy); +__BUILTIN_TRANS (__gconv_transform_ucs4_utf8); +__BUILTIN_TRANS (__gconv_transform_utf8_ucs4); +__BUILTIN_TRANS (__gconv_transform_ucs2_ucs4); +__BUILTIN_TRANS (__gconv_transform_ucs4_ucs2); +# undef __BUITLIN_TRANS + +extern int __gconv_transform_init_rstate __P ((struct gconv_step *__step, + struct gconv_step_data *__data)); +extern void __gconv_transform_end_rstate __P ((struct gconv_step_data *__data)); + +#endif + +__END_DECLS + +#endif /* gconv_int.h */ diff --git a/iconv/gconv_open.c b/iconv/gconv_open.c index 343cb70773..ea7b3653af 100644 --- a/iconv/gconv_open.c +++ b/iconv/gconv_open.c @@ -1,5 +1,5 @@ /* Find matching transformation algorithms and initialize steps. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -19,11 +19,13 @@ Boston, MA 02111-1307, USA. */ #include -#include #include +#include + int +internal_function __gconv_open (const char *toset, const char *fromset, gconv_t *handle) { struct gconv_step *steps; diff --git a/iconv/iconv.c b/iconv/iconv.c index 8804e851b6..fc0ed41b50 100644 --- a/iconv/iconv.c +++ b/iconv/iconv.c @@ -1,6 +1,6 @@ /* Convert characters in input buffer using conversion descriptor to output buffer. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -21,7 +21,8 @@ #include #include -#include + +#include #include diff --git a/iconv/iconv_close.c b/iconv/iconv_close.c index ccd9d5f3ad..d3974c5799 100644 --- a/iconv/iconv_close.c +++ b/iconv/iconv_close.c @@ -1,5 +1,5 @@ /* Release any resource associated with given conversion descriptor. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -21,7 +21,7 @@ #include #include -#include +#include int diff --git a/iconv/iconv_open.c b/iconv/iconv_open.c index d178362ca7..cad8be6be7 100644 --- a/iconv/iconv_open.c +++ b/iconv/iconv_open.c @@ -24,7 +24,7 @@ #include #include -#include +#include static inline void diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c index 6b34d3460b..f26b7159e4 100644 --- a/iconv/iconv_prog.c +++ b/iconv/iconv_prog.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -32,6 +31,7 @@ #include #include #include +#include /* Get libc version number. */ #include "../version.h" diff --git a/iconvdata/ksc5601.c b/iconvdata/ksc5601.c index 32ec7324a9..c919425aa7 100644 --- a/iconvdata/ksc5601.c +++ b/iconvdata/ksc5601.c @@ -625,20 +625,22 @@ const uint16_t ksc5601_sym_to_ucs[] = Mapping table from UCS4 to symbols defined in KS C 5601-1987. -egrep '^0xA[1-C]' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \ +egrep '^0xA[1-C]' /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \ grep -v '# HANGUL SYLLABLE' | awk '{print $2, $1}' | sort -u | -perl tab12.pl | > ksc_sym2.tb - +perl tab12.pl > ksc_sym2.tb $n=0; + print " "; while (<>) { local($ucs4, $ksc, %rest) = split; local($u)=hex($ucs4); local($k)=hex($ksc); + local($ku)=int(($k - 0xa1a1) / 256) * 94 + (($k - 0xa1a1) & 0xff); + local($h)=0x21+int($ku/0x5e); + local($l)=0x21+int($ku%0x5e); $n++; - printf (" 0x%04x, 0x%04x,", $u, - int(($k - 0xa1a1) / 256) * 94 + (($k - 0xa1a1) & 0xff)); - print "\n" if $n %4 == 0; + printf (" {0x%04x, 0x%04x},", $u, $h*256+$l); + print "\n " if $n %4 == 0; } print "\n"; @@ -646,253 +648,253 @@ perl tab12.pl | > ksc_sym2.tb const uint16_t ksc5601_sym_from_ucs[KSC5601_SYMBOL][2] = { - 0x00a1, 0x222e, 0x00a4, 0x2234, 0x00a7, 0x2157, 0x00a8, 0x2127, - 0x00aa, 0x2823, 0x00ad, 0x2129, 0x00b0, 0x2146, 0x00b1, 0x213e, - 0x00b2, 0x2977, 0x00b3, 0x2978, 0x00b4, 0x2225, 0x00b6, 0x2252, - 0x00b7, 0x2124, 0x00b8, 0x222c, 0x00b9, 0x2976, 0x00ba, 0x282c, - 0x00bc, 0x2879, 0x00bd, 0x2876, 0x00be, 0x287a, 0x00bf, 0x222f, - 0x00c6, 0x2821, 0x00d0, 0x2822, 0x00d7, 0x213f, 0x00d8, 0x282a, - 0x00de, 0x282d, 0x00df, 0x292c, 0x00e6, 0x2921, 0x00f0, 0x2923, - 0x00f7, 0x2140, 0x00f8, 0x292a, 0x00fe, 0x292d, 0x0111, 0x2922, - 0x0126, 0x2824, 0x0127, 0x2924, 0x0131, 0x2925, 0x0132, 0x2826, - 0x0133, 0x2926, 0x0138, 0x2927, 0x013f, 0x2828, 0x0140, 0x2928, - 0x0141, 0x2829, 0x0142, 0x2929, 0x0149, 0x2930, 0x014a, 0x282f, - 0x014b, 0x292f, 0x0152, 0x282b, 0x0153, 0x292b, 0x0166, 0x282e, - 0x0167, 0x292e, 0x02c7, 0x2227, 0x02d0, 0x2230, 0x02d8, 0x2228, - 0x02d9, 0x222b, 0x02da, 0x222a, 0x02db, 0x222d, 0x02dd, 0x2229, - 0x0391, 0x2541, 0x0392, 0x2542, 0x0393, 0x2543, 0x0394, 0x2544, - 0x0395, 0x2545, 0x0396, 0x2546, 0x0397, 0x2547, 0x0398, 0x2548, - 0x0399, 0x2549, 0x039a, 0x254a, 0x039b, 0x254b, 0x039c, 0x254c, - 0x039d, 0x254d, 0x039e, 0x254e, 0x039f, 0x254f, 0x03a0, 0x2550, - 0x03a1, 0x2551, 0x03a3, 0x2552, 0x03a4, 0x2553, 0x03a5, 0x2554, - 0x03a6, 0x2555, 0x03a7, 0x2556, 0x03a8, 0x2557, 0x03a9, 0x2558, - 0x03b1, 0x2561, 0x03b2, 0x2562, 0x03b3, 0x2563, 0x03b4, 0x2564, - 0x03b5, 0x2565, 0x03b6, 0x2566, 0x03b7, 0x2567, 0x03b8, 0x2568, - 0x03b9, 0x2569, 0x03ba, 0x256a, 0x03bb, 0x256b, 0x03bc, 0x256c, - 0x03bd, 0x256d, 0x03be, 0x256e, 0x03bf, 0x256f, 0x03c0, 0x2570, - 0x03c1, 0x2571, 0x03c3, 0x2572, 0x03c4, 0x2573, 0x03c5, 0x2574, - 0x03c6, 0x2575, 0x03c7, 0x2576, 0x03c8, 0x2577, 0x03c9, 0x2578, - 0x0401, 0x2c27, 0x0410, 0x2c21, 0x0411, 0x2c22, 0x0412, 0x2c23, - 0x0413, 0x2c24, 0x0414, 0x2c25, 0x0415, 0x2c26, 0x0416, 0x2c28, - 0x0417, 0x2c29, 0x0418, 0x2c2a, 0x0419, 0x2c2b, 0x041a, 0x2c2c, - 0x041b, 0x2c2d, 0x041c, 0x2c2e, 0x041d, 0x2c2f, 0x041e, 0x2c30, - 0x041f, 0x2c31, 0x0420, 0x2c32, 0x0421, 0x2c33, 0x0422, 0x2c34, - 0x0423, 0x2c35, 0x0424, 0x2c36, 0x0425, 0x2c37, 0x0426, 0x2c38, - 0x0427, 0x2c39, 0x0428, 0x2c3a, 0x0429, 0x2c3b, 0x042a, 0x2c3c, - 0x042b, 0x2c3d, 0x042c, 0x2c3e, 0x042d, 0x2c3f, 0x042e, 0x2c40, - 0x042f, 0x2c41, 0x0430, 0x2c51, 0x0431, 0x2c52, 0x0432, 0x2c53, - 0x0433, 0x2c54, 0x0434, 0x2c55, 0x0435, 0x2c56, 0x0436, 0x2c58, - 0x0437, 0x2c59, 0x0438, 0x2c5a, 0x0439, 0x2c5b, 0x043a, 0x2c5c, - 0x043b, 0x2c5d, 0x043c, 0x2c5e, 0x043d, 0x2c5f, 0x043e, 0x2c60, - 0x043f, 0x2c61, 0x0440, 0x2c62, 0x0441, 0x2c63, 0x0442, 0x2c64, - 0x0443, 0x2c65, 0x0444, 0x2c66, 0x0445, 0x2c67, 0x0446, 0x2c68, - 0x0447, 0x2c69, 0x0448, 0x2c6a, 0x0449, 0x2c6b, 0x044a, 0x2c6c, - 0x044b, 0x2c6d, 0x044c, 0x2c6e, 0x044d, 0x2c6f, 0x044e, 0x2c70, - 0x044f, 0x2c71, 0x0451, 0x2c57, 0x2015, 0x212a, 0x2018, 0x212e, - 0x2019, 0x212f, 0x201c, 0x2130, 0x201d, 0x2131, 0x2020, 0x2253, - 0x2021, 0x2254, 0x2025, 0x2125, 0x2026, 0x2126, 0x2030, 0x2236, - 0x2032, 0x2147, 0x2033, 0x2148, 0x203b, 0x2158, 0x2074, 0x2979, - 0x207f, 0x297a, 0x2081, 0x297b, 0x2082, 0x297c, 0x2083, 0x297d, - 0x2084, 0x297e, 0x2103, 0x2149, 0x2109, 0x2235, 0x2113, 0x2724, - 0x2116, 0x2260, 0x2121, 0x2265, 0x2122, 0x2262, 0x2126, 0x2759, - 0x212b, 0x214a, 0x2153, 0x2877, 0x2154, 0x2878, 0x215b, 0x287b, - 0x215c, 0x287c, 0x215d, 0x287d, 0x215e, 0x287e, 0x2160, 0x2530, - 0x2161, 0x2531, 0x2162, 0x2532, 0x2163, 0x2533, 0x2164, 0x2534, - 0x2165, 0x2535, 0x2166, 0x2536, 0x2167, 0x2537, 0x2168, 0x2538, - 0x2169, 0x2539, 0x2170, 0x2521, 0x2171, 0x2522, 0x2172, 0x2523, - 0x2173, 0x2524, 0x2174, 0x2525, 0x2175, 0x2526, 0x2176, 0x2527, - 0x2177, 0x2528, 0x2178, 0x2529, 0x2179, 0x252a, 0x2190, 0x2167, - 0x2191, 0x2168, 0x2192, 0x2166, 0x2193, 0x2169, 0x2194, 0x216a, - 0x2195, 0x2255, 0x2196, 0x2258, 0x2197, 0x2256, 0x2198, 0x2259, - 0x2199, 0x2257, 0x21d2, 0x2221, 0x21d4, 0x2222, 0x2200, 0x2223, - 0x2202, 0x2153, 0x2203, 0x2224, 0x2207, 0x2154, 0x2208, 0x2174, - 0x220b, 0x2175, 0x220f, 0x2233, 0x2211, 0x2232, 0x221a, 0x216e, - 0x221d, 0x2170, 0x221e, 0x2144, 0x2220, 0x2150, 0x2225, 0x212b, - 0x2227, 0x217c, 0x2228, 0x217d, 0x2229, 0x217b, 0x222a, 0x217a, - 0x222b, 0x2172, 0x222c, 0x2173, 0x222e, 0x2231, 0x2234, 0x2145, - 0x2235, 0x2171, 0x223c, 0x212d, 0x223d, 0x216f, 0x2252, 0x2156, - 0x2260, 0x2141, 0x2261, 0x2155, 0x2264, 0x2142, 0x2265, 0x2143, - 0x226a, 0x216c, 0x226b, 0x216d, 0x2282, 0x2178, 0x2283, 0x2179, - 0x2286, 0x2176, 0x2287, 0x2177, 0x2299, 0x2241, 0x22a5, 0x2151, - 0x2312, 0x2152, 0x2460, 0x2867, 0x2461, 0x2868, 0x2462, 0x2869, - 0x2463, 0x286a, 0x2464, 0x286b, 0x2465, 0x286c, 0x2466, 0x286d, - 0x2467, 0x286e, 0x2468, 0x286f, 0x2469, 0x2870, 0x246a, 0x2871, - 0x246b, 0x2872, 0x246c, 0x2873, 0x246d, 0x2874, 0x246e, 0x2875, - 0x2474, 0x2967, 0x2475, 0x2968, 0x2476, 0x2969, 0x2477, 0x296a, - 0x2478, 0x296b, 0x2479, 0x296c, 0x247a, 0x296d, 0x247b, 0x296e, - 0x247c, 0x296f, 0x247d, 0x2970, 0x247e, 0x2971, 0x247f, 0x2972, - 0x2480, 0x2973, 0x2481, 0x2974, 0x2482, 0x2975, 0x249c, 0x294d, - 0x249d, 0x294e, 0x249e, 0x294f, 0x249f, 0x2950, 0x24a0, 0x2951, - 0x24a1, 0x2952, 0x24a2, 0x2953, 0x24a3, 0x2954, 0x24a4, 0x2955, - 0x24a5, 0x2956, 0x24a6, 0x2957, 0x24a7, 0x2958, 0x24a8, 0x2959, - 0x24a9, 0x295a, 0x24aa, 0x295b, 0x24ab, 0x295c, 0x24ac, 0x295d, - 0x24ad, 0x295e, 0x24ae, 0x295f, 0x24af, 0x2960, 0x24b0, 0x2961, - 0x24b1, 0x2962, 0x24b2, 0x2963, 0x24b3, 0x2964, 0x24b4, 0x2965, - 0x24b5, 0x2966, 0x24d0, 0x284d, 0x24d1, 0x284e, 0x24d2, 0x284f, - 0x24d3, 0x2850, 0x24d4, 0x2851, 0x24d5, 0x2852, 0x24d6, 0x2853, - 0x24d7, 0x2854, 0x24d8, 0x2855, 0x24d9, 0x2856, 0x24da, 0x2857, - 0x24db, 0x2858, 0x24dc, 0x2859, 0x24dd, 0x285a, 0x24de, 0x285b, - 0x24df, 0x285c, 0x24e0, 0x285d, 0x24e1, 0x285e, 0x24e2, 0x285f, - 0x24e3, 0x2860, 0x24e4, 0x2861, 0x24e5, 0x2862, 0x24e6, 0x2863, - 0x24e7, 0x2864, 0x24e8, 0x2865, 0x24e9, 0x2866, 0x2500, 0x2621, - 0x2501, 0x262c, 0x2502, 0x2622, 0x2503, 0x262d, 0x250c, 0x2623, - 0x250d, 0x2648, 0x250e, 0x2647, 0x250f, 0x262e, 0x2510, 0x2624, - 0x2511, 0x2642, 0x2512, 0x2641, 0x2513, 0x262f, 0x2514, 0x2626, - 0x2515, 0x2646, 0x2516, 0x2645, 0x2517, 0x2631, 0x2518, 0x2625, - 0x2519, 0x2644, 0x251a, 0x2643, 0x251b, 0x2630, 0x251c, 0x2627, - 0x251d, 0x263c, 0x251e, 0x2649, 0x251f, 0x264a, 0x2520, 0x2637, - 0x2521, 0x264b, 0x2522, 0x264c, 0x2523, 0x2632, 0x2524, 0x2629, - 0x2525, 0x263e, 0x2526, 0x264d, 0x2527, 0x264e, 0x2528, 0x2639, - 0x2529, 0x264f, 0x252a, 0x2650, 0x252b, 0x2634, 0x252c, 0x2628, - 0x252d, 0x2651, 0x252e, 0x2652, 0x252f, 0x2638, 0x2530, 0x263d, - 0x2531, 0x2653, 0x2532, 0x2654, 0x2533, 0x2633, 0x2534, 0x262a, - 0x2535, 0x2655, 0x2536, 0x2656, 0x2537, 0x263a, 0x2538, 0x263f, - 0x2539, 0x2657, 0x253a, 0x2658, 0x253b, 0x2635, 0x253c, 0x262b, - 0x253d, 0x2659, 0x253e, 0x265a, 0x253f, 0x263b, 0x2540, 0x265b, - 0x2541, 0x265c, 0x2542, 0x2640, 0x2543, 0x265d, 0x2544, 0x265e, - 0x2545, 0x265f, 0x2546, 0x2660, 0x2547, 0x2661, 0x2548, 0x2662, - 0x2549, 0x2663, 0x254a, 0x2664, 0x254b, 0x2636, 0x2592, 0x2246, - 0x25a0, 0x2161, 0x25a1, 0x2160, 0x25a3, 0x2243, 0x25a4, 0x2247, - 0x25a5, 0x2248, 0x25a6, 0x224b, 0x25a7, 0x224a, 0x25a8, 0x2249, - 0x25a9, 0x224c, 0x25b2, 0x2163, 0x25b3, 0x2162, 0x25b6, 0x223a, - 0x25b7, 0x2239, 0x25bc, 0x2165, 0x25bd, 0x2164, 0x25c0, 0x2238, - 0x25c1, 0x2237, 0x25c6, 0x215f, 0x25c7, 0x215e, 0x25c8, 0x2242, - 0x25cb, 0x215b, 0x25ce, 0x215d, 0x25cf, 0x215c, 0x25d0, 0x2244, - 0x25d1, 0x2245, 0x2605, 0x215a, 0x2606, 0x2159, 0x260e, 0x224f, - 0x260f, 0x224e, 0x261c, 0x2250, 0x261e, 0x2251, 0x2640, 0x214f, - 0x2642, 0x214e, 0x2660, 0x223c, 0x2661, 0x223d, 0x2663, 0x2240, - 0x2664, 0x223b, 0x2665, 0x223e, 0x2667, 0x223f, 0x2668, 0x224d, - 0x2669, 0x225b, 0x266a, 0x225c, 0x266c, 0x225d, 0x266d, 0x225a, - 0x3000, 0x2121, 0x3001, 0x2122, 0x3002, 0x2123, 0x3003, 0x2128, - 0x3008, 0x2134, 0x3009, 0x2135, 0x300a, 0x2136, 0x300b, 0x2137, - 0x300c, 0x2138, 0x300d, 0x2139, 0x300e, 0x213a, 0x300f, 0x213b, - 0x3010, 0x213c, 0x3011, 0x213d, 0x3013, 0x216b, 0x3014, 0x2132, - 0x3015, 0x2133, 0x3041, 0x2a21, 0x3042, 0x2a22, 0x3043, 0x2a23, - 0x3044, 0x2a24, 0x3045, 0x2a25, 0x3046, 0x2a26, 0x3047, 0x2a27, - 0x3048, 0x2a28, 0x3049, 0x2a29, 0x304a, 0x2a2a, 0x304b, 0x2a2b, - 0x304c, 0x2a2c, 0x304d, 0x2a2d, 0x304e, 0x2a2e, 0x304f, 0x2a2f, - 0x3050, 0x2a30, 0x3051, 0x2a31, 0x3052, 0x2a32, 0x3053, 0x2a33, - 0x3054, 0x2a34, 0x3055, 0x2a35, 0x3056, 0x2a36, 0x3057, 0x2a37, - 0x3058, 0x2a38, 0x3059, 0x2a39, 0x305a, 0x2a3a, 0x305b, 0x2a3b, - 0x305c, 0x2a3c, 0x305d, 0x2a3d, 0x305e, 0x2a3e, 0x305f, 0x2a3f, - 0x3060, 0x2a40, 0x3061, 0x2a41, 0x3062, 0x2a42, 0x3063, 0x2a43, - 0x3064, 0x2a44, 0x3065, 0x2a45, 0x3066, 0x2a46, 0x3067, 0x2a47, - 0x3068, 0x2a48, 0x3069, 0x2a49, 0x306a, 0x2a4a, 0x306b, 0x2a4b, - 0x306c, 0x2a4c, 0x306d, 0x2a4d, 0x306e, 0x2a4e, 0x306f, 0x2a4f, - 0x3070, 0x2a50, 0x3071, 0x2a51, 0x3072, 0x2a52, 0x3073, 0x2a53, - 0x3074, 0x2a54, 0x3075, 0x2a55, 0x3076, 0x2a56, 0x3077, 0x2a57, - 0x3078, 0x2a58, 0x3079, 0x2a59, 0x307a, 0x2a5a, 0x307b, 0x2a5b, - 0x307c, 0x2a5c, 0x307d, 0x2a5d, 0x307e, 0x2a5e, 0x307f, 0x2a5f, - 0x3080, 0x2a60, 0x3081, 0x2a61, 0x3082, 0x2a62, 0x3083, 0x2a63, - 0x3084, 0x2a64, 0x3085, 0x2a65, 0x3086, 0x2a66, 0x3087, 0x2a67, - 0x3088, 0x2a68, 0x3089, 0x2a69, 0x308a, 0x2a6a, 0x308b, 0x2a6b, - 0x308c, 0x2a6c, 0x308d, 0x2a6d, 0x308e, 0x2a6e, 0x308f, 0x2a6f, - 0x3090, 0x2a70, 0x3091, 0x2a71, 0x3092, 0x2a72, 0x3093, 0x2a73, - 0x30a1, 0x2b21, 0x30a2, 0x2b22, 0x30a3, 0x2b23, 0x30a4, 0x2b24, - 0x30a5, 0x2b25, 0x30a6, 0x2b26, 0x30a7, 0x2b27, 0x30a8, 0x2b28, - 0x30a9, 0x2b29, 0x30aa, 0x2b2a, 0x30ab, 0x2b2b, 0x30ac, 0x2b2c, - 0x30ad, 0x2b2d, 0x30ae, 0x2b2e, 0x30af, 0x2b2f, 0x30b0, 0x2b30, - 0x30b1, 0x2b31, 0x30b2, 0x2b32, 0x30b3, 0x2b33, 0x30b4, 0x2b34, - 0x30b5, 0x2b35, 0x30b6, 0x2b36, 0x30b7, 0x2b37, 0x30b8, 0x2b38, - 0x30b9, 0x2b39, 0x30ba, 0x2b3a, 0x30bb, 0x2b3b, 0x30bc, 0x2b3c, - 0x30bd, 0x2b3d, 0x30be, 0x2b3e, 0x30bf, 0x2b3f, 0x30c0, 0x2b40, - 0x30c1, 0x2b41, 0x30c2, 0x2b42, 0x30c3, 0x2b43, 0x30c4, 0x2b44, - 0x30c5, 0x2b45, 0x30c6, 0x2b46, 0x30c7, 0x2b47, 0x30c8, 0x2b48, - 0x30c9, 0x2b49, 0x30ca, 0x2b4a, 0x30cb, 0x2b4b, 0x30cc, 0x2b4c, - 0x30cd, 0x2b4d, 0x30ce, 0x2b4e, 0x30cf, 0x2b4f, 0x30d0, 0x2b50, - 0x30d1, 0x2b51, 0x30d2, 0x2b52, 0x30d3, 0x2b53, 0x30d4, 0x2b54, - 0x30d5, 0x2b55, 0x30d6, 0x2b56, 0x30d7, 0x2b57, 0x30d8, 0x2b58, - 0x30d9, 0x2b59, 0x30da, 0x2b5a, 0x30db, 0x2b5b, 0x30dc, 0x2b5c, - 0x30dd, 0x2b5d, 0x30de, 0x2b5e, 0x30df, 0x2b5f, 0x30e0, 0x2b60, - 0x30e1, 0x2b61, 0x30e2, 0x2b62, 0x30e3, 0x2b63, 0x30e4, 0x2b64, - 0x30e5, 0x2b65, 0x30e6, 0x2b66, 0x30e7, 0x2b67, 0x30e8, 0x2b68, - 0x30e9, 0x2b69, 0x30ea, 0x2b6a, 0x30eb, 0x2b6b, 0x30ec, 0x2b6c, - 0x30ed, 0x2b6d, 0x30ee, 0x2b6e, 0x30ef, 0x2b6f, 0x30f0, 0x2b70, - 0x30f1, 0x2b71, 0x30f2, 0x2b72, 0x30f3, 0x2b73, 0x30f4, 0x2b74, - 0x30f5, 0x2b75, 0x30f6, 0x2b76, 0x3131, 0x2421, 0x3132, 0x2422, - 0x3133, 0x2423, 0x3134, 0x2424, 0x3135, 0x2425, 0x3136, 0x2426, - 0x3137, 0x2427, 0x3138, 0x2428, 0x3139, 0x2429, 0x313a, 0x242a, - 0x313b, 0x242b, 0x313c, 0x242c, 0x313d, 0x242d, 0x313e, 0x242e, - 0x313f, 0x242f, 0x3140, 0x2430, 0x3141, 0x2431, 0x3142, 0x2432, - 0x3143, 0x2433, 0x3144, 0x2434, 0x3145, 0x2435, 0x3146, 0x2436, - 0x3147, 0x2437, 0x3148, 0x2438, 0x3149, 0x2439, 0x314a, 0x243a, - 0x314b, 0x243b, 0x314c, 0x243c, 0x314d, 0x243d, 0x314e, 0x243e, - 0x314f, 0x243f, 0x3150, 0x2440, 0x3151, 0x2441, 0x3152, 0x2442, - 0x3153, 0x2443, 0x3154, 0x2444, 0x3155, 0x2445, 0x3156, 0x2446, - 0x3157, 0x2447, 0x3158, 0x2448, 0x3159, 0x2449, 0x315a, 0x244a, - 0x315b, 0x244b, 0x315c, 0x244c, 0x315d, 0x244d, 0x315e, 0x244e, - 0x315f, 0x244f, 0x3160, 0x2450, 0x3161, 0x2451, 0x3162, 0x2452, - 0x3163, 0x2453, 0x3164, 0x2454, 0x3165, 0x2455, 0x3166, 0x2456, - 0x3167, 0x2457, 0x3168, 0x2458, 0x3169, 0x2459, 0x316a, 0x245a, - 0x316b, 0x245b, 0x316c, 0x245c, 0x316d, 0x245d, 0x316e, 0x245e, - 0x316f, 0x245f, 0x3170, 0x2460, 0x3171, 0x2461, 0x3172, 0x2462, - 0x3173, 0x2463, 0x3174, 0x2464, 0x3175, 0x2465, 0x3176, 0x2466, - 0x3177, 0x2467, 0x3178, 0x2468, 0x3179, 0x2469, 0x317a, 0x246a, - 0x317b, 0x246b, 0x317c, 0x246c, 0x317d, 0x246d, 0x317e, 0x246e, - 0x317f, 0x246f, 0x3180, 0x2470, 0x3181, 0x2471, 0x3182, 0x2472, - 0x3183, 0x2473, 0x3184, 0x2474, 0x3185, 0x2475, 0x3186, 0x2476, - 0x3187, 0x2477, 0x3188, 0x2478, 0x3189, 0x2479, 0x318a, 0x247a, - 0x318b, 0x247b, 0x318c, 0x247c, 0x318d, 0x247d, 0x318e, 0x247e, - 0x3200, 0x2931, 0x3201, 0x2932, 0x3202, 0x2933, 0x3203, 0x2934, - 0x3204, 0x2935, 0x3205, 0x2936, 0x3206, 0x2937, 0x3207, 0x2938, - 0x3208, 0x2939, 0x3209, 0x293a, 0x320a, 0x293b, 0x320b, 0x293c, - 0x320c, 0x293d, 0x320d, 0x293e, 0x320e, 0x293f, 0x320f, 0x2940, - 0x3210, 0x2941, 0x3211, 0x2942, 0x3212, 0x2943, 0x3213, 0x2944, - 0x3214, 0x2945, 0x3215, 0x2946, 0x3216, 0x2947, 0x3217, 0x2948, - 0x3218, 0x2949, 0x3219, 0x294a, 0x321a, 0x294b, 0x321b, 0x294c, - 0x321c, 0x225f, 0x3260, 0x2831, 0x3261, 0x2832, 0x3262, 0x2833, - 0x3263, 0x2834, 0x3264, 0x2835, 0x3265, 0x2836, 0x3266, 0x2837, - 0x3267, 0x2838, 0x3268, 0x2839, 0x3269, 0x283a, 0x326a, 0x283b, - 0x326b, 0x283c, 0x326c, 0x283d, 0x326d, 0x283e, 0x326e, 0x283f, - 0x326f, 0x2840, 0x3270, 0x2841, 0x3271, 0x2842, 0x3272, 0x2843, - 0x3273, 0x2844, 0x3274, 0x2845, 0x3275, 0x2846, 0x3276, 0x2847, - 0x3277, 0x2848, 0x3278, 0x2849, 0x3279, 0x284a, 0x327a, 0x284b, - 0x327b, 0x284c, 0x327f, 0x225e, 0x3380, 0x2749, 0x3381, 0x274a, - 0x3382, 0x274b, 0x3383, 0x274c, 0x3384, 0x274d, 0x3388, 0x273a, - 0x3389, 0x273b, 0x338a, 0x275c, 0x338b, 0x275d, 0x338c, 0x275e, - 0x338d, 0x2736, 0x338e, 0x2737, 0x338f, 0x2738, 0x3390, 0x2754, - 0x3391, 0x2755, 0x3392, 0x2756, 0x3393, 0x2757, 0x3394, 0x2758, - 0x3395, 0x2721, 0x3396, 0x2722, 0x3397, 0x2723, 0x3398, 0x2725, - 0x3399, 0x272b, 0x339a, 0x272c, 0x339b, 0x272d, 0x339c, 0x272e, - 0x339d, 0x272f, 0x339e, 0x2730, 0x339f, 0x2731, 0x33a0, 0x2732, - 0x33a1, 0x2733, 0x33a2, 0x2734, 0x33a3, 0x2727, 0x33a4, 0x2728, - 0x33a5, 0x2729, 0x33a6, 0x272a, 0x33a7, 0x273d, 0x33a8, 0x273e, - 0x33a9, 0x2765, 0x33aa, 0x2766, 0x33ab, 0x2767, 0x33ac, 0x2768, - 0x33ad, 0x2761, 0x33ae, 0x2762, 0x33af, 0x2763, 0x33b0, 0x273f, - 0x33b1, 0x2740, 0x33b2, 0x2741, 0x33b3, 0x2742, 0x33b4, 0x2743, - 0x33b5, 0x2744, 0x33b6, 0x2745, 0x33b7, 0x2746, 0x33b8, 0x2747, - 0x33b9, 0x2748, 0x33ba, 0x274e, 0x33bb, 0x274f, 0x33bc, 0x2750, - 0x33bd, 0x2751, 0x33be, 0x2752, 0x33bf, 0x2753, 0x33c0, 0x275a, - 0x33c1, 0x275b, 0x33c2, 0x2263, 0x33c3, 0x276c, 0x33c4, 0x2726, - 0x33c5, 0x2760, 0x33c6, 0x276f, 0x33c7, 0x2261, 0x33c8, 0x273c, - 0x33c9, 0x276d, 0x33ca, 0x2735, 0x33cf, 0x2739, 0x33d0, 0x276a, - 0x33d3, 0x276b, 0x33d6, 0x275f, 0x33d8, 0x2264, 0x33db, 0x2764, - 0x33dc, 0x276e, 0x33dd, 0x2769, 0xff01, 0x2321, 0xff02, 0x2322, - 0xff03, 0x2323, 0xff04, 0x2324, 0xff05, 0x2325, 0xff06, 0x2326, - 0xff07, 0x2327, 0xff08, 0x2328, 0xff09, 0x2329, 0xff0a, 0x232a, - 0xff0b, 0x232b, 0xff0c, 0x232c, 0xff0d, 0x232d, 0xff0e, 0x232e, - 0xff0f, 0x232f, 0xff10, 0x2330, 0xff11, 0x2331, 0xff12, 0x2332, - 0xff13, 0x2333, 0xff14, 0x2334, 0xff15, 0x2335, 0xff16, 0x2336, - 0xff17, 0x2337, 0xff18, 0x2338, 0xff19, 0x2339, 0xff1a, 0x233a, - 0xff1b, 0x233b, 0xff1c, 0x233c, 0xff1d, 0x233d, 0xff1e, 0x233e, - 0xff1f, 0x233f, 0xff20, 0x2340, 0xff21, 0x2341, 0xff22, 0x2342, - 0xff23, 0x2343, 0xff24, 0x2344, 0xff25, 0x2345, 0xff26, 0x2346, - 0xff27, 0x2347, 0xff28, 0x2348, 0xff29, 0x2349, 0xff2a, 0x234a, - 0xff2b, 0x234b, 0xff2c, 0x234c, 0xff2d, 0x234d, 0xff2e, 0x234e, - 0xff2f, 0x234f, 0xff30, 0x2350, 0xff31, 0x2351, 0xff32, 0x2352, - 0xff33, 0x2353, 0xff34, 0x2354, 0xff35, 0x2355, 0xff36, 0x2356, - 0xff37, 0x2357, 0xff38, 0x2358, 0xff39, 0x2359, 0xff3a, 0x235a, - 0xff3b, 0x235b, 0xff3c, 0x212c, 0xff3d, 0x235d, 0xff3e, 0x235e, - 0xff3f, 0x235f, 0xff40, 0x2360, 0xff41, 0x2361, 0xff42, 0x2362, - 0xff43, 0x2363, 0xff44, 0x2364, 0xff45, 0x2365, 0xff46, 0x2366, - 0xff47, 0x2367, 0xff48, 0x2368, 0xff49, 0x2369, 0xff4a, 0x236a, - 0xff4b, 0x236b, 0xff4c, 0x236c, 0xff4d, 0x236d, 0xff4e, 0x236e, - 0xff4f, 0x236f, 0xff50, 0x2370, 0xff51, 0x2371, 0xff52, 0x2372, - 0xff53, 0x2373, 0xff54, 0x2374, 0xff55, 0x2375, 0xff56, 0x2376, - 0xff57, 0x2377, 0xff58, 0x2378, 0xff59, 0x2379, 0xff5a, 0x237a, - 0xff5b, 0x237b, 0xff5c, 0x237c, 0xff5d, 0x237d, 0xff5e, 0x2226, - 0xffe0, 0x214b, 0xffe1, 0x214c, 0xffe2, 0x217e, 0xffe3, 0x237e, - 0xffe5, 0x214d, 0xffe6, 0x235c + {0x00a1, 0x222e}, {0x00a4, 0x2234}, {0x00a7, 0x2157}, {0x00a8, 0x2127}, + {0x00aa, 0x2823}, {0x00ad, 0x2129}, {0x00b0, 0x2146}, {0x00b1, 0x213e}, + {0x00b2, 0x2977}, {0x00b3, 0x2978}, {0x00b4, 0x2225}, {0x00b6, 0x2252}, + {0x00b7, 0x2124}, {0x00b8, 0x222c}, {0x00b9, 0x2976}, {0x00ba, 0x282c}, + {0x00bc, 0x2879}, {0x00bd, 0x2876}, {0x00be, 0x287a}, {0x00bf, 0x222f}, + {0x00c6, 0x2821}, {0x00d0, 0x2822}, {0x00d7, 0x213f}, {0x00d8, 0x282a}, + {0x00de, 0x282d}, {0x00df, 0x292c}, {0x00e6, 0x2921}, {0x00f0, 0x2923}, + {0x00f7, 0x2140}, {0x00f8, 0x292a}, {0x00fe, 0x292d}, {0x0111, 0x2922}, + {0x0126, 0x2824}, {0x0127, 0x2924}, {0x0131, 0x2925}, {0x0132, 0x2826}, + {0x0133, 0x2926}, {0x0138, 0x2927}, {0x013f, 0x2828}, {0x0140, 0x2928}, + {0x0141, 0x2829}, {0x0142, 0x2929}, {0x0149, 0x2930}, {0x014a, 0x282f}, + {0x014b, 0x292f}, {0x0152, 0x282b}, {0x0153, 0x292b}, {0x0166, 0x282e}, + {0x0167, 0x292e}, {0x02c7, 0x2227}, {0x02d0, 0x2230}, {0x02d8, 0x2228}, + {0x02d9, 0x222b}, {0x02da, 0x222a}, {0x02db, 0x222d}, {0x02dd, 0x2229}, + {0x0391, 0x2541}, {0x0392, 0x2542}, {0x0393, 0x2543}, {0x0394, 0x2544}, + {0x0395, 0x2545}, {0x0396, 0x2546}, {0x0397, 0x2547}, {0x0398, 0x2548}, + {0x0399, 0x2549}, {0x039a, 0x254a}, {0x039b, 0x254b}, {0x039c, 0x254c}, + {0x039d, 0x254d}, {0x039e, 0x254e}, {0x039f, 0x254f}, {0x03a0, 0x2550}, + {0x03a1, 0x2551}, {0x03a3, 0x2552}, {0x03a4, 0x2553}, {0x03a5, 0x2554}, + {0x03a6, 0x2555}, {0x03a7, 0x2556}, {0x03a8, 0x2557}, {0x03a9, 0x2558}, + {0x03b1, 0x2561}, {0x03b2, 0x2562}, {0x03b3, 0x2563}, {0x03b4, 0x2564}, + {0x03b5, 0x2565}, {0x03b6, 0x2566}, {0x03b7, 0x2567}, {0x03b8, 0x2568}, + {0x03b9, 0x2569}, {0x03ba, 0x256a}, {0x03bb, 0x256b}, {0x03bc, 0x256c}, + {0x03bd, 0x256d}, {0x03be, 0x256e}, {0x03bf, 0x256f}, {0x03c0, 0x2570}, + {0x03c1, 0x2571}, {0x03c3, 0x2572}, {0x03c4, 0x2573}, {0x03c5, 0x2574}, + {0x03c6, 0x2575}, {0x03c7, 0x2576}, {0x03c8, 0x2577}, {0x03c9, 0x2578}, + {0x0401, 0x2c27}, {0x0410, 0x2c21}, {0x0411, 0x2c22}, {0x0412, 0x2c23}, + {0x0413, 0x2c24}, {0x0414, 0x2c25}, {0x0415, 0x2c26}, {0x0416, 0x2c28}, + {0x0417, 0x2c29}, {0x0418, 0x2c2a}, {0x0419, 0x2c2b}, {0x041a, 0x2c2c}, + {0x041b, 0x2c2d}, {0x041c, 0x2c2e}, {0x041d, 0x2c2f}, {0x041e, 0x2c30}, + {0x041f, 0x2c31}, {0x0420, 0x2c32}, {0x0421, 0x2c33}, {0x0422, 0x2c34}, + {0x0423, 0x2c35}, {0x0424, 0x2c36}, {0x0425, 0x2c37}, {0x0426, 0x2c38}, + {0x0427, 0x2c39}, {0x0428, 0x2c3a}, {0x0429, 0x2c3b}, {0x042a, 0x2c3c}, + {0x042b, 0x2c3d}, {0x042c, 0x2c3e}, {0x042d, 0x2c3f}, {0x042e, 0x2c40}, + {0x042f, 0x2c41}, {0x0430, 0x2c51}, {0x0431, 0x2c52}, {0x0432, 0x2c53}, + {0x0433, 0x2c54}, {0x0434, 0x2c55}, {0x0435, 0x2c56}, {0x0436, 0x2c58}, + {0x0437, 0x2c59}, {0x0438, 0x2c5a}, {0x0439, 0x2c5b}, {0x043a, 0x2c5c}, + {0x043b, 0x2c5d}, {0x043c, 0x2c5e}, {0x043d, 0x2c5f}, {0x043e, 0x2c60}, + {0x043f, 0x2c61}, {0x0440, 0x2c62}, {0x0441, 0x2c63}, {0x0442, 0x2c64}, + {0x0443, 0x2c65}, {0x0444, 0x2c66}, {0x0445, 0x2c67}, {0x0446, 0x2c68}, + {0x0447, 0x2c69}, {0x0448, 0x2c6a}, {0x0449, 0x2c6b}, {0x044a, 0x2c6c}, + {0x044b, 0x2c6d}, {0x044c, 0x2c6e}, {0x044d, 0x2c6f}, {0x044e, 0x2c70}, + {0x044f, 0x2c71}, {0x0451, 0x2c57}, {0x2015, 0x212a}, {0x2018, 0x212e}, + {0x2019, 0x212f}, {0x201c, 0x2130}, {0x201d, 0x2131}, {0x2020, 0x2253}, + {0x2021, 0x2254}, {0x2025, 0x2125}, {0x2026, 0x2126}, {0x2030, 0x2236}, + {0x2032, 0x2147}, {0x2033, 0x2148}, {0x203b, 0x2158}, {0x2074, 0x2979}, + {0x207f, 0x297a}, {0x2081, 0x297b}, {0x2082, 0x297c}, {0x2083, 0x297d}, + {0x2084, 0x297e}, {0x2103, 0x2149}, {0x2109, 0x2235}, {0x2113, 0x2724}, + {0x2116, 0x2260}, {0x2121, 0x2265}, {0x2122, 0x2262}, {0x2126, 0x2759}, + {0x212b, 0x214a}, {0x2153, 0x2877}, {0x2154, 0x2878}, {0x215b, 0x287b}, + {0x215c, 0x287c}, {0x215d, 0x287d}, {0x215e, 0x287e}, {0x2160, 0x2530}, + {0x2161, 0x2531}, {0x2162, 0x2532}, {0x2163, 0x2533}, {0x2164, 0x2534}, + {0x2165, 0x2535}, {0x2166, 0x2536}, {0x2167, 0x2537}, {0x2168, 0x2538}, + {0x2169, 0x2539}, {0x2170, 0x2521}, {0x2171, 0x2522}, {0x2172, 0x2523}, + {0x2173, 0x2524}, {0x2174, 0x2525}, {0x2175, 0x2526}, {0x2176, 0x2527}, + {0x2177, 0x2528}, {0x2178, 0x2529}, {0x2179, 0x252a}, {0x2190, 0x2167}, + {0x2191, 0x2168}, {0x2192, 0x2166}, {0x2193, 0x2169}, {0x2194, 0x216a}, + {0x2195, 0x2255}, {0x2196, 0x2258}, {0x2197, 0x2256}, {0x2198, 0x2259}, + {0x2199, 0x2257}, {0x21d2, 0x2221}, {0x21d4, 0x2222}, {0x2200, 0x2223}, + {0x2202, 0x2153}, {0x2203, 0x2224}, {0x2207, 0x2154}, {0x2208, 0x2174}, + {0x220b, 0x2175}, {0x220f, 0x2233}, {0x2211, 0x2232}, {0x221a, 0x216e}, + {0x221d, 0x2170}, {0x221e, 0x2144}, {0x2220, 0x2150}, {0x2225, 0x212b}, + {0x2227, 0x217c}, {0x2228, 0x217d}, {0x2229, 0x217b}, {0x222a, 0x217a}, + {0x222b, 0x2172}, {0x222c, 0x2173}, {0x222e, 0x2231}, {0x2234, 0x2145}, + {0x2235, 0x2171}, {0x223c, 0x212d}, {0x223d, 0x216f}, {0x2252, 0x2156}, + {0x2260, 0x2141}, {0x2261, 0x2155}, {0x2264, 0x2142}, {0x2265, 0x2143}, + {0x226a, 0x216c}, {0x226b, 0x216d}, {0x2282, 0x2178}, {0x2283, 0x2179}, + {0x2286, 0x2176}, {0x2287, 0x2177}, {0x2299, 0x2241}, {0x22a5, 0x2151}, + {0x2312, 0x2152}, {0x2460, 0x2867}, {0x2461, 0x2868}, {0x2462, 0x2869}, + {0x2463, 0x286a}, {0x2464, 0x286b}, {0x2465, 0x286c}, {0x2466, 0x286d}, + {0x2467, 0x286e}, {0x2468, 0x286f}, {0x2469, 0x2870}, {0x246a, 0x2871}, + {0x246b, 0x2872}, {0x246c, 0x2873}, {0x246d, 0x2874}, {0x246e, 0x2875}, + {0x2474, 0x2967}, {0x2475, 0x2968}, {0x2476, 0x2969}, {0x2477, 0x296a}, + {0x2478, 0x296b}, {0x2479, 0x296c}, {0x247a, 0x296d}, {0x247b, 0x296e}, + {0x247c, 0x296f}, {0x247d, 0x2970}, {0x247e, 0x2971}, {0x247f, 0x2972}, + {0x2480, 0x2973}, {0x2481, 0x2974}, {0x2482, 0x2975}, {0x249c, 0x294d}, + {0x249d, 0x294e}, {0x249e, 0x294f}, {0x249f, 0x2950}, {0x24a0, 0x2951}, + {0x24a1, 0x2952}, {0x24a2, 0x2953}, {0x24a3, 0x2954}, {0x24a4, 0x2955}, + {0x24a5, 0x2956}, {0x24a6, 0x2957}, {0x24a7, 0x2958}, {0x24a8, 0x2959}, + {0x24a9, 0x295a}, {0x24aa, 0x295b}, {0x24ab, 0x295c}, {0x24ac, 0x295d}, + {0x24ad, 0x295e}, {0x24ae, 0x295f}, {0x24af, 0x2960}, {0x24b0, 0x2961}, + {0x24b1, 0x2962}, {0x24b2, 0x2963}, {0x24b3, 0x2964}, {0x24b4, 0x2965}, + {0x24b5, 0x2966}, {0x24d0, 0x284d}, {0x24d1, 0x284e}, {0x24d2, 0x284f}, + {0x24d3, 0x2850}, {0x24d4, 0x2851}, {0x24d5, 0x2852}, {0x24d6, 0x2853}, + {0x24d7, 0x2854}, {0x24d8, 0x2855}, {0x24d9, 0x2856}, {0x24da, 0x2857}, + {0x24db, 0x2858}, {0x24dc, 0x2859}, {0x24dd, 0x285a}, {0x24de, 0x285b}, + {0x24df, 0x285c}, {0x24e0, 0x285d}, {0x24e1, 0x285e}, {0x24e2, 0x285f}, + {0x24e3, 0x2860}, {0x24e4, 0x2861}, {0x24e5, 0x2862}, {0x24e6, 0x2863}, + {0x24e7, 0x2864}, {0x24e8, 0x2865}, {0x24e9, 0x2866}, {0x2500, 0x2621}, + {0x2501, 0x262c}, {0x2502, 0x2622}, {0x2503, 0x262d}, {0x250c, 0x2623}, + {0x250d, 0x2648}, {0x250e, 0x2647}, {0x250f, 0x262e}, {0x2510, 0x2624}, + {0x2511, 0x2642}, {0x2512, 0x2641}, {0x2513, 0x262f}, {0x2514, 0x2626}, + {0x2515, 0x2646}, {0x2516, 0x2645}, {0x2517, 0x2631}, {0x2518, 0x2625}, + {0x2519, 0x2644}, {0x251a, 0x2643}, {0x251b, 0x2630}, {0x251c, 0x2627}, + {0x251d, 0x263c}, {0x251e, 0x2649}, {0x251f, 0x264a}, {0x2520, 0x2637}, + {0x2521, 0x264b}, {0x2522, 0x264c}, {0x2523, 0x2632}, {0x2524, 0x2629}, + {0x2525, 0x263e}, {0x2526, 0x264d}, {0x2527, 0x264e}, {0x2528, 0x2639}, + {0x2529, 0x264f}, {0x252a, 0x2650}, {0x252b, 0x2634}, {0x252c, 0x2628}, + {0x252d, 0x2651}, {0x252e, 0x2652}, {0x252f, 0x2638}, {0x2530, 0x263d}, + {0x2531, 0x2653}, {0x2532, 0x2654}, {0x2533, 0x2633}, {0x2534, 0x262a}, + {0x2535, 0x2655}, {0x2536, 0x2656}, {0x2537, 0x263a}, {0x2538, 0x263f}, + {0x2539, 0x2657}, {0x253a, 0x2658}, {0x253b, 0x2635}, {0x253c, 0x262b}, + {0x253d, 0x2659}, {0x253e, 0x265a}, {0x253f, 0x263b}, {0x2540, 0x265b}, + {0x2541, 0x265c}, {0x2542, 0x2640}, {0x2543, 0x265d}, {0x2544, 0x265e}, + {0x2545, 0x265f}, {0x2546, 0x2660}, {0x2547, 0x2661}, {0x2548, 0x2662}, + {0x2549, 0x2663}, {0x254a, 0x2664}, {0x254b, 0x2636}, {0x2592, 0x2246}, + {0x25a0, 0x2161}, {0x25a1, 0x2160}, {0x25a3, 0x2243}, {0x25a4, 0x2247}, + {0x25a5, 0x2248}, {0x25a6, 0x224b}, {0x25a7, 0x224a}, {0x25a8, 0x2249}, + {0x25a9, 0x224c}, {0x25b2, 0x2163}, {0x25b3, 0x2162}, {0x25b6, 0x223a}, + {0x25b7, 0x2239}, {0x25bc, 0x2165}, {0x25bd, 0x2164}, {0x25c0, 0x2238}, + {0x25c1, 0x2237}, {0x25c6, 0x215f}, {0x25c7, 0x215e}, {0x25c8, 0x2242}, + {0x25cb, 0x215b}, {0x25ce, 0x215d}, {0x25cf, 0x215c}, {0x25d0, 0x2244}, + {0x25d1, 0x2245}, {0x2605, 0x215a}, {0x2606, 0x2159}, {0x260e, 0x224f}, + {0x260f, 0x224e}, {0x261c, 0x2250}, {0x261e, 0x2251}, {0x2640, 0x214f}, + {0x2642, 0x214e}, {0x2660, 0x223c}, {0x2661, 0x223d}, {0x2663, 0x2240}, + {0x2664, 0x223b}, {0x2665, 0x223e}, {0x2667, 0x223f}, {0x2668, 0x224d}, + {0x2669, 0x225b}, {0x266a, 0x225c}, {0x266c, 0x225d}, {0x266d, 0x225a}, + {0x3000, 0x2121}, {0x3001, 0x2122}, {0x3002, 0x2123}, {0x3003, 0x2128}, + {0x3008, 0x2134}, {0x3009, 0x2135}, {0x300a, 0x2136}, {0x300b, 0x2137}, + {0x300c, 0x2138}, {0x300d, 0x2139}, {0x300e, 0x213a}, {0x300f, 0x213b}, + {0x3010, 0x213c}, {0x3011, 0x213d}, {0x3013, 0x216b}, {0x3014, 0x2132}, + {0x3015, 0x2133}, {0x3041, 0x2a21}, {0x3042, 0x2a22}, {0x3043, 0x2a23}, + {0x3044, 0x2a24}, {0x3045, 0x2a25}, {0x3046, 0x2a26}, {0x3047, 0x2a27}, + {0x3048, 0x2a28}, {0x3049, 0x2a29}, {0x304a, 0x2a2a}, {0x304b, 0x2a2b}, + {0x304c, 0x2a2c}, {0x304d, 0x2a2d}, {0x304e, 0x2a2e}, {0x304f, 0x2a2f}, + {0x3050, 0x2a30}, {0x3051, 0x2a31}, {0x3052, 0x2a32}, {0x3053, 0x2a33}, + {0x3054, 0x2a34}, {0x3055, 0x2a35}, {0x3056, 0x2a36}, {0x3057, 0x2a37}, + {0x3058, 0x2a38}, {0x3059, 0x2a39}, {0x305a, 0x2a3a}, {0x305b, 0x2a3b}, + {0x305c, 0x2a3c}, {0x305d, 0x2a3d}, {0x305e, 0x2a3e}, {0x305f, 0x2a3f}, + {0x3060, 0x2a40}, {0x3061, 0x2a41}, {0x3062, 0x2a42}, {0x3063, 0x2a43}, + {0x3064, 0x2a44}, {0x3065, 0x2a45}, {0x3066, 0x2a46}, {0x3067, 0x2a47}, + {0x3068, 0x2a48}, {0x3069, 0x2a49}, {0x306a, 0x2a4a}, {0x306b, 0x2a4b}, + {0x306c, 0x2a4c}, {0x306d, 0x2a4d}, {0x306e, 0x2a4e}, {0x306f, 0x2a4f}, + {0x3070, 0x2a50}, {0x3071, 0x2a51}, {0x3072, 0x2a52}, {0x3073, 0x2a53}, + {0x3074, 0x2a54}, {0x3075, 0x2a55}, {0x3076, 0x2a56}, {0x3077, 0x2a57}, + {0x3078, 0x2a58}, {0x3079, 0x2a59}, {0x307a, 0x2a5a}, {0x307b, 0x2a5b}, + {0x307c, 0x2a5c}, {0x307d, 0x2a5d}, {0x307e, 0x2a5e}, {0x307f, 0x2a5f}, + {0x3080, 0x2a60}, {0x3081, 0x2a61}, {0x3082, 0x2a62}, {0x3083, 0x2a63}, + {0x3084, 0x2a64}, {0x3085, 0x2a65}, {0x3086, 0x2a66}, {0x3087, 0x2a67}, + {0x3088, 0x2a68}, {0x3089, 0x2a69}, {0x308a, 0x2a6a}, {0x308b, 0x2a6b}, + {0x308c, 0x2a6c}, {0x308d, 0x2a6d}, {0x308e, 0x2a6e}, {0x308f, 0x2a6f}, + {0x3090, 0x2a70}, {0x3091, 0x2a71}, {0x3092, 0x2a72}, {0x3093, 0x2a73}, + {0x30a1, 0x2b21}, {0x30a2, 0x2b22}, {0x30a3, 0x2b23}, {0x30a4, 0x2b24}, + {0x30a5, 0x2b25}, {0x30a6, 0x2b26}, {0x30a7, 0x2b27}, {0x30a8, 0x2b28}, + {0x30a9, 0x2b29}, {0x30aa, 0x2b2a}, {0x30ab, 0x2b2b}, {0x30ac, 0x2b2c}, + {0x30ad, 0x2b2d}, {0x30ae, 0x2b2e}, {0x30af, 0x2b2f}, {0x30b0, 0x2b30}, + {0x30b1, 0x2b31}, {0x30b2, 0x2b32}, {0x30b3, 0x2b33}, {0x30b4, 0x2b34}, + {0x30b5, 0x2b35}, {0x30b6, 0x2b36}, {0x30b7, 0x2b37}, {0x30b8, 0x2b38}, + {0x30b9, 0x2b39}, {0x30ba, 0x2b3a}, {0x30bb, 0x2b3b}, {0x30bc, 0x2b3c}, + {0x30bd, 0x2b3d}, {0x30be, 0x2b3e}, {0x30bf, 0x2b3f}, {0x30c0, 0x2b40}, + {0x30c1, 0x2b41}, {0x30c2, 0x2b42}, {0x30c3, 0x2b43}, {0x30c4, 0x2b44}, + {0x30c5, 0x2b45}, {0x30c6, 0x2b46}, {0x30c7, 0x2b47}, {0x30c8, 0x2b48}, + {0x30c9, 0x2b49}, {0x30ca, 0x2b4a}, {0x30cb, 0x2b4b}, {0x30cc, 0x2b4c}, + {0x30cd, 0x2b4d}, {0x30ce, 0x2b4e}, {0x30cf, 0x2b4f}, {0x30d0, 0x2b50}, + {0x30d1, 0x2b51}, {0x30d2, 0x2b52}, {0x30d3, 0x2b53}, {0x30d4, 0x2b54}, + {0x30d5, 0x2b55}, {0x30d6, 0x2b56}, {0x30d7, 0x2b57}, {0x30d8, 0x2b58}, + {0x30d9, 0x2b59}, {0x30da, 0x2b5a}, {0x30db, 0x2b5b}, {0x30dc, 0x2b5c}, + {0x30dd, 0x2b5d}, {0x30de, 0x2b5e}, {0x30df, 0x2b5f}, {0x30e0, 0x2b60}, + {0x30e1, 0x2b61}, {0x30e2, 0x2b62}, {0x30e3, 0x2b63}, {0x30e4, 0x2b64}, + {0x30e5, 0x2b65}, {0x30e6, 0x2b66}, {0x30e7, 0x2b67}, {0x30e8, 0x2b68}, + {0x30e9, 0x2b69}, {0x30ea, 0x2b6a}, {0x30eb, 0x2b6b}, {0x30ec, 0x2b6c}, + {0x30ed, 0x2b6d}, {0x30ee, 0x2b6e}, {0x30ef, 0x2b6f}, {0x30f0, 0x2b70}, + {0x30f1, 0x2b71}, {0x30f2, 0x2b72}, {0x30f3, 0x2b73}, {0x30f4, 0x2b74}, + {0x30f5, 0x2b75}, {0x30f6, 0x2b76}, {0x3131, 0x2421}, {0x3132, 0x2422}, + {0x3133, 0x2423}, {0x3134, 0x2424}, {0x3135, 0x2425}, {0x3136, 0x2426}, + {0x3137, 0x2427}, {0x3138, 0x2428}, {0x3139, 0x2429}, {0x313a, 0x242a}, + {0x313b, 0x242b}, {0x313c, 0x242c}, {0x313d, 0x242d}, {0x313e, 0x242e}, + {0x313f, 0x242f}, {0x3140, 0x2430}, {0x3141, 0x2431}, {0x3142, 0x2432}, + {0x3143, 0x2433}, {0x3144, 0x2434}, {0x3145, 0x2435}, {0x3146, 0x2436}, + {0x3147, 0x2437}, {0x3148, 0x2438}, {0x3149, 0x2439}, {0x314a, 0x243a}, + {0x314b, 0x243b}, {0x314c, 0x243c}, {0x314d, 0x243d}, {0x314e, 0x243e}, + {0x314f, 0x243f}, {0x3150, 0x2440}, {0x3151, 0x2441}, {0x3152, 0x2442}, + {0x3153, 0x2443}, {0x3154, 0x2444}, {0x3155, 0x2445}, {0x3156, 0x2446}, + {0x3157, 0x2447}, {0x3158, 0x2448}, {0x3159, 0x2449}, {0x315a, 0x244a}, + {0x315b, 0x244b}, {0x315c, 0x244c}, {0x315d, 0x244d}, {0x315e, 0x244e}, + {0x315f, 0x244f}, {0x3160, 0x2450}, {0x3161, 0x2451}, {0x3162, 0x2452}, + {0x3163, 0x2453}, {0x3164, 0x2454}, {0x3165, 0x2455}, {0x3166, 0x2456}, + {0x3167, 0x2457}, {0x3168, 0x2458}, {0x3169, 0x2459}, {0x316a, 0x245a}, + {0x316b, 0x245b}, {0x316c, 0x245c}, {0x316d, 0x245d}, {0x316e, 0x245e}, + {0x316f, 0x245f}, {0x3170, 0x2460}, {0x3171, 0x2461}, {0x3172, 0x2462}, + {0x3173, 0x2463}, {0x3174, 0x2464}, {0x3175, 0x2465}, {0x3176, 0x2466}, + {0x3177, 0x2467}, {0x3178, 0x2468}, {0x3179, 0x2469}, {0x317a, 0x246a}, + {0x317b, 0x246b}, {0x317c, 0x246c}, {0x317d, 0x246d}, {0x317e, 0x246e}, + {0x317f, 0x246f}, {0x3180, 0x2470}, {0x3181, 0x2471}, {0x3182, 0x2472}, + {0x3183, 0x2473}, {0x3184, 0x2474}, {0x3185, 0x2475}, {0x3186, 0x2476}, + {0x3187, 0x2477}, {0x3188, 0x2478}, {0x3189, 0x2479}, {0x318a, 0x247a}, + {0x318b, 0x247b}, {0x318c, 0x247c}, {0x318d, 0x247d}, {0x318e, 0x247e}, + {0x3200, 0x2931}, {0x3201, 0x2932}, {0x3202, 0x2933}, {0x3203, 0x2934}, + {0x3204, 0x2935}, {0x3205, 0x2936}, {0x3206, 0x2937}, {0x3207, 0x2938}, + {0x3208, 0x2939}, {0x3209, 0x293a}, {0x320a, 0x293b}, {0x320b, 0x293c}, + {0x320c, 0x293d}, {0x320d, 0x293e}, {0x320e, 0x293f}, {0x320f, 0x2940}, + {0x3210, 0x2941}, {0x3211, 0x2942}, {0x3212, 0x2943}, {0x3213, 0x2944}, + {0x3214, 0x2945}, {0x3215, 0x2946}, {0x3216, 0x2947}, {0x3217, 0x2948}, + {0x3218, 0x2949}, {0x3219, 0x294a}, {0x321a, 0x294b}, {0x321b, 0x294c}, + {0x321c, 0x225f}, {0x3260, 0x2831}, {0x3261, 0x2832}, {0x3262, 0x2833}, + {0x3263, 0x2834}, {0x3264, 0x2835}, {0x3265, 0x2836}, {0x3266, 0x2837}, + {0x3267, 0x2838}, {0x3268, 0x2839}, {0x3269, 0x283a}, {0x326a, 0x283b}, + {0x326b, 0x283c}, {0x326c, 0x283d}, {0x326d, 0x283e}, {0x326e, 0x283f}, + {0x326f, 0x2840}, {0x3270, 0x2841}, {0x3271, 0x2842}, {0x3272, 0x2843}, + {0x3273, 0x2844}, {0x3274, 0x2845}, {0x3275, 0x2846}, {0x3276, 0x2847}, + {0x3277, 0x2848}, {0x3278, 0x2849}, {0x3279, 0x284a}, {0x327a, 0x284b}, + {0x327b, 0x284c}, {0x327f, 0x225e}, {0x3380, 0x2749}, {0x3381, 0x274a}, + {0x3382, 0x274b}, {0x3383, 0x274c}, {0x3384, 0x274d}, {0x3388, 0x273a}, + {0x3389, 0x273b}, {0x338a, 0x275c}, {0x338b, 0x275d}, {0x338c, 0x275e}, + {0x338d, 0x2736}, {0x338e, 0x2737}, {0x338f, 0x2738}, {0x3390, 0x2754}, + {0x3391, 0x2755}, {0x3392, 0x2756}, {0x3393, 0x2757}, {0x3394, 0x2758}, + {0x3395, 0x2721}, {0x3396, 0x2722}, {0x3397, 0x2723}, {0x3398, 0x2725}, + {0x3399, 0x272b}, {0x339a, 0x272c}, {0x339b, 0x272d}, {0x339c, 0x272e}, + {0x339d, 0x272f}, {0x339e, 0x2730}, {0x339f, 0x2731}, {0x33a0, 0x2732}, + {0x33a1, 0x2733}, {0x33a2, 0x2734}, {0x33a3, 0x2727}, {0x33a4, 0x2728}, + {0x33a5, 0x2729}, {0x33a6, 0x272a}, {0x33a7, 0x273d}, {0x33a8, 0x273e}, + {0x33a9, 0x2765}, {0x33aa, 0x2766}, {0x33ab, 0x2767}, {0x33ac, 0x2768}, + {0x33ad, 0x2761}, {0x33ae, 0x2762}, {0x33af, 0x2763}, {0x33b0, 0x273f}, + {0x33b1, 0x2740}, {0x33b2, 0x2741}, {0x33b3, 0x2742}, {0x33b4, 0x2743}, + {0x33b5, 0x2744}, {0x33b6, 0x2745}, {0x33b7, 0x2746}, {0x33b8, 0x2747}, + {0x33b9, 0x2748}, {0x33ba, 0x274e}, {0x33bb, 0x274f}, {0x33bc, 0x2750}, + {0x33bd, 0x2751}, {0x33be, 0x2752}, {0x33bf, 0x2753}, {0x33c0, 0x275a}, + {0x33c1, 0x275b}, {0x33c2, 0x2263}, {0x33c3, 0x276c}, {0x33c4, 0x2726}, + {0x33c5, 0x2760}, {0x33c6, 0x276f}, {0x33c7, 0x2261}, {0x33c8, 0x273c}, + {0x33c9, 0x276d}, {0x33ca, 0x2735}, {0x33cf, 0x2739}, {0x33d0, 0x276a}, + {0x33d3, 0x276b}, {0x33d6, 0x275f}, {0x33d8, 0x2264}, {0x33db, 0x2764}, + {0x33dc, 0x276e}, {0x33dd, 0x2769}, {0xff01, 0x2321}, {0xff02, 0x2322}, + {0xff03, 0x2323}, {0xff04, 0x2324}, {0xff05, 0x2325}, {0xff06, 0x2326}, + {0xff07, 0x2327}, {0xff08, 0x2328}, {0xff09, 0x2329}, {0xff0a, 0x232a}, + {0xff0b, 0x232b}, {0xff0c, 0x232c}, {0xff0d, 0x232d}, {0xff0e, 0x232e}, + {0xff0f, 0x232f}, {0xff10, 0x2330}, {0xff11, 0x2331}, {0xff12, 0x2332}, + {0xff13, 0x2333}, {0xff14, 0x2334}, {0xff15, 0x2335}, {0xff16, 0x2336}, + {0xff17, 0x2337}, {0xff18, 0x2338}, {0xff19, 0x2339}, {0xff1a, 0x233a}, + {0xff1b, 0x233b}, {0xff1c, 0x233c}, {0xff1d, 0x233d}, {0xff1e, 0x233e}, + {0xff1f, 0x233f}, {0xff20, 0x2340}, {0xff21, 0x2341}, {0xff22, 0x2342}, + {0xff23, 0x2343}, {0xff24, 0x2344}, {0xff25, 0x2345}, {0xff26, 0x2346}, + {0xff27, 0x2347}, {0xff28, 0x2348}, {0xff29, 0x2349}, {0xff2a, 0x234a}, + {0xff2b, 0x234b}, {0xff2c, 0x234c}, {0xff2d, 0x234d}, {0xff2e, 0x234e}, + {0xff2f, 0x234f}, {0xff30, 0x2350}, {0xff31, 0x2351}, {0xff32, 0x2352}, + {0xff33, 0x2353}, {0xff34, 0x2354}, {0xff35, 0x2355}, {0xff36, 0x2356}, + {0xff37, 0x2357}, {0xff38, 0x2358}, {0xff39, 0x2359}, {0xff3a, 0x235a}, + {0xff3b, 0x235b}, {0xff3c, 0x212c}, {0xff3d, 0x235d}, {0xff3e, 0x235e}, + {0xff3f, 0x235f}, {0xff40, 0x2360}, {0xff41, 0x2361}, {0xff42, 0x2362}, + {0xff43, 0x2363}, {0xff44, 0x2364}, {0xff45, 0x2365}, {0xff46, 0x2366}, + {0xff47, 0x2367}, {0xff48, 0x2368}, {0xff49, 0x2369}, {0xff4a, 0x236a}, + {0xff4b, 0x236b}, {0xff4c, 0x236c}, {0xff4d, 0x236d}, {0xff4e, 0x236e}, + {0xff4f, 0x236f}, {0xff50, 0x2370}, {0xff51, 0x2371}, {0xff52, 0x2372}, + {0xff53, 0x2373}, {0xff54, 0x2374}, {0xff55, 0x2375}, {0xff56, 0x2376}, + {0xff57, 0x2377}, {0xff58, 0x2378}, {0xff59, 0x2379}, {0xff5a, 0x237a}, + {0xff5b, 0x237b}, {0xff5c, 0x237c}, {0xff5d, 0x237d}, {0xff5e, 0x2226}, + {0xffe0, 0x214b}, {0xffe1, 0x214c}, {0xffe2, 0x217e}, {0xffe3, 0x237e}, + {0xffe5, 0x214d}, {0xffe6, 0x235c}, }; /* @@ -1532,13 +1534,17 @@ egrep '^0x.*# ' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \ awk '{print $2,$1}' | sort -u | perl tab12.pl > ksc_hanja2.tb $n=0; + print " "; while (<>) { local($ucs4, $ksc, %rest) = split; local($u)=hex($ucs4); local($k)=hex($ksc); + local($ku)=int(($k - 0xa1a1) / 256) * 94 + (($k - 0xa1a1) & 0xff); + local($h)=0x21+int($ku/0x5e); + local($l)=0x21+int($ku%0x5e); $n++; - printf (" 0x%04x, 0x%04x,", $u,$k-0xa0a0); - print "\n" if $n %4 == 0; + printf (" {0x%04x, 0x%04x},", $u, $h*256+$l); + print "\n " if $n %4 == 0; } print "\n"; @@ -1546,1226 +1552,1226 @@ awk '{print $2,$1}' | sort -u | perl tab12.pl > ksc_hanja2.tb const uint16_t ksc5601_hanja_from_ucs[KSC5601_HANJA][2]= { - 0x4e00, 0x6c69, 0x4e01, 0x6f4b, 0x4e03, 0x7652, 0x4e07, 0x5832, - 0x4e08, 0x6d5b, 0x4e09, 0x5f32, 0x4e0a, 0x5f3e, 0x4e0b, 0x793b, - 0x4e0d, 0x5c74, 0x4e11, 0x7564, 0x4e14, 0x7326, 0x4e15, 0x5d60, - 0x4e16, 0x6126, 0x4e18, 0x4e78, 0x4e19, 0x5c30, 0x4e1e, 0x632a, - 0x4e2d, 0x7169, 0x4e32, 0x4d7a, 0x4e38, 0x7c2f, 0x4e39, 0x5321, - 0x4e3b, 0x712b, 0x4e42, 0x6751, 0x4e43, 0x522c, 0x4e45, 0x4e79, - 0x4e4b, 0x717d, 0x4e4d, 0x5e3f, 0x4e4e, 0x7b3a, 0x4e4f, 0x7939, - 0x4e56, 0x4e52, 0x4e58, 0x632b, 0x4e59, 0x6b60, 0x4e5d, 0x4e7a, - 0x4e5e, 0x4b77, 0x4e5f, 0x6525, 0x4e6b, 0x4a61, 0x4e6d, 0x544c, - 0x4e73, 0x6a61, 0x4e76, 0x5c63, 0x4e77, 0x5f2d, 0x4e7e, 0x4b6b, - 0x4e82, 0x552f, 0x4e86, 0x5675, 0x4e88, 0x6578, 0x4e8b, 0x5e40, - 0x4e8c, 0x6c23, 0x4e8e, 0x694d, 0x4e90, 0x6a27, 0x4e91, 0x6976, - 0x4e92, 0x7b3b, 0x4e94, 0x6769, 0x4e95, 0x6f4c, 0x4e98, 0x5066, - 0x4e9b, 0x5e41, 0x4e9e, 0x642c, 0x4ea1, 0x584c, 0x4ea2, 0x7971, - 0x4ea4, 0x4e5f, 0x4ea5, 0x7a24, 0x4ea6, 0x6632, 0x4ea8, 0x7a7b, - 0x4eab, 0x7a3d, 0x4eac, 0x4c48, 0x4ead, 0x6f4d, 0x4eae, 0x5555, - 0x4eb6, 0x5322, 0x4eba, 0x6c51, 0x4ec0, 0x6427, 0x4ec1, 0x6c52, - 0x4ec4, 0x7631, 0x4ec7, 0x4e7b, 0x4eca, 0x5051, 0x4ecb, 0x4b3f, - 0x4ecd, 0x6d24, 0x4ed4, 0x6d28, 0x4ed5, 0x5e42, 0x4ed6, 0x7662, - 0x4ed7, 0x6d5c, 0x4ed8, 0x5c75, 0x4ed9, 0x6039, 0x4edd, 0x544e, - 0x4edf, 0x7435, 0x4ee3, 0x535b, 0x4ee4, 0x5635, 0x4ee5, 0x6c24, - 0x4ef0, 0x6466, 0x4ef2, 0x716a, 0x4ef6, 0x4b6c, 0x4ef7, 0x4b40, - 0x4efb, 0x6c72, 0x4f01, 0x506a, 0x4f09, 0x7972, 0x4f0a, 0x6c25, - 0x4f0b, 0x505f, 0x4f0d, 0x676a, 0x4f0e, 0x506b, 0x4f0f, 0x5c51, - 0x4f10, 0x5b69, 0x4f11, 0x7d4c, 0x4f2f, 0x5b57, 0x4f34, 0x5a61, - 0x4f36, 0x5636, 0x4f38, 0x635f, 0x4f3a, 0x5e43, 0x4f3c, 0x5e44, - 0x4f3d, 0x4a21, 0x4f43, 0x6e6c, 0x4f46, 0x5323, 0x4f47, 0x6e37, - 0x4f48, 0x784f, 0x4f4d, 0x6a48, 0x4f4e, 0x6e38, 0x4f4f, 0x712c, - 0x4f50, 0x7125, 0x4f51, 0x694e, 0x4f55, 0x793c, 0x4f59, 0x6579, - 0x4f5a, 0x6c6a, 0x4f5b, 0x5d56, 0x4f5c, 0x6d42, 0x4f69, 0x7825, - 0x4f6f, 0x653a, 0x4f70, 0x5b58, 0x4f73, 0x4a22, 0x4f76, 0x514d, - 0x4f7a, 0x6e6d, 0x4f7e, 0x6c6b, 0x4f7f, 0x5e45, 0x4f81, 0x6360, - 0x4f83, 0x4a49, 0x4f84, 0x7269, 0x4f86, 0x554e, 0x4f88, 0x7636, - 0x4f8a, 0x4e42, 0x4f8b, 0x5647, 0x4f8d, 0x6334, 0x4f8f, 0x712d, - 0x4f91, 0x6a62, 0x4f96, 0x5742, 0x4f98, 0x7327, 0x4f9b, 0x4d6a, - 0x4f9d, 0x6b6e, 0x4fae, 0x5932, 0x4faf, 0x7d25, 0x4fb5, 0x7655, - 0x4fb6, 0x5562, 0x4fbf, 0x7835, 0x4fc2, 0x4c75, 0x4fc3, 0x7535, - 0x4fc4, 0x642d, 0x4fc9, 0x676b, 0x4fca, 0x7155, 0x4fce, 0x703b, - 0x4fd1, 0x6935, 0x4fd3, 0x4c49, 0x4fd4, 0x7a55, 0x4fd7, 0x6154, - 0x4fda, 0x5756, 0x4fdd, 0x5c41, 0x4fdf, 0x5e46, 0x4fe0, 0x7a6f, - 0x4fe1, 0x6361, 0x4fee, 0x6173, 0x4fef, 0x5c76, 0x4ff1, 0x4e7c, - 0x4ff3, 0x5b44, 0x4ff5, 0x7871, 0x4ff8, 0x5c64, 0x4ffa, 0x656f, - 0x5002, 0x5c31, 0x5006, 0x5556, 0x5009, 0x735a, 0x500b, 0x4b41, - 0x500d, 0x5b43, 0x5011, 0x597a, 0x5012, 0x536e, 0x5016, 0x7a38, - 0x5019, 0x7d26, 0x501a, 0x6b6f, 0x501c, 0x7426, 0x501e, 0x4c4a, - 0x501f, 0x7328, 0x5021, 0x735b, 0x5023, 0x5b27, 0x5024, 0x7637, - 0x5026, 0x4f66, 0x5027, 0x7072, 0x5028, 0x4b5a, 0x502a, 0x6752, - 0x502b, 0x5743, 0x502c, 0x7670, 0x502d, 0x685e, 0x503b, 0x6526, - 0x5043, 0x6567, 0x5047, 0x4a23, 0x5048, 0x4c27, 0x5049, 0x6a49, - 0x504f, 0x7836, 0x5055, 0x7a25, 0x505a, 0x712e, 0x505c, 0x6f4e, - 0x5065, 0x4b6d, 0x5074, 0x7630, 0x5075, 0x6f4f, 0x5076, 0x694f, - 0x5078, 0x775e, 0x5080, 0x4e53, 0x5085, 0x5c77, 0x508d, 0x5b28, - 0x5091, 0x4b78, 0x5098, 0x5f21, 0x5099, 0x5d61, 0x50ac, 0x754a, - 0x50ad, 0x6936, 0x50b2, 0x676c, 0x50b3, 0x6e6e, 0x50b5, 0x7370, - 0x50b7, 0x5f3f, 0x50be, 0x4c4b, 0x50c5, 0x5041, 0x50c9, 0x7452, - 0x50ca, 0x603a, 0x50cf, 0x5f40, 0x50d1, 0x4e60, 0x50d5, 0x5c52, - 0x50d6, 0x7d6a, 0x50da, 0x5676, 0x50de, 0x6a4a, 0x50e5, 0x6869, - 0x50e7, 0x632c, 0x50ed, 0x7350, 0x50f9, 0x4a24, 0x50fb, 0x5b78, - 0x50ff, 0x5e47, 0x5100, 0x6b70, 0x5101, 0x7156, 0x5104, 0x6562, - 0x5106, 0x4c4c, 0x5109, 0x4b7b, 0x5112, 0x6a63, 0x511f, 0x5f41, - 0x5121, 0x566d, 0x512a, 0x6950, 0x5132, 0x6e39, 0x5137, 0x5563, - 0x513a, 0x5153, 0x513c, 0x6570, 0x5140, 0x6834, 0x5141, 0x6b43, - 0x5143, 0x6a2a, 0x5144, 0x7a7c, 0x5145, 0x7576, 0x5146, 0x703c, - 0x5147, 0x7d54, 0x5148, 0x603b, 0x5149, 0x4e43, 0x514b, 0x503a, - 0x514c, 0x773a, 0x514d, 0x5873, 0x514e, 0x774d, 0x5152, 0x642e, - 0x515c, 0x545f, 0x5162, 0x5067, 0x5165, 0x6c7d, 0x5167, 0x522e, - 0x5168, 0x6e6f, 0x5169, 0x5557, 0x516a, 0x6a64, 0x516b, 0x7822, - 0x516c, 0x4d6b, 0x516d, 0x573f, 0x516e, 0x7b31, 0x5171, 0x4d6c, - 0x5175, 0x5c32, 0x5176, 0x506c, 0x5177, 0x4e7d, 0x5178, 0x6e70, - 0x517c, 0x4c42, 0x5180, 0x506d, 0x5186, 0x6577, 0x518a, 0x737c, - 0x518d, 0x6e22, 0x5192, 0x5933, 0x5195, 0x5874, 0x5197, 0x6937, - 0x51a0, 0x4e2e, 0x51a5, 0x5922, 0x51aa, 0x5871, 0x51ac, 0x544f, - 0x51b6, 0x6527, 0x51b7, 0x5552, 0x51bd, 0x5629, 0x51c4, 0x7422, - 0x51c6, 0x7157, 0x51c9, 0x5558, 0x51cb, 0x703d, 0x51cc, 0x5750, - 0x51cd, 0x5450, 0x51dc, 0x574f, 0x51dd, 0x6b6a, 0x51de, 0x7d6b, - 0x51e1, 0x5b6d, 0x51f0, 0x7c45, 0x51f1, 0x4b42, 0x51f6, 0x7d55, - 0x51f8, 0x7448, 0x51f9, 0x686a, 0x51fa, 0x7573, 0x51fd, 0x795e, - 0x5200, 0x536f, 0x5203, 0x6c53, 0x5206, 0x5d42, 0x5207, 0x6f37, - 0x5208, 0x6754, 0x520a, 0x4a4a, 0x520e, 0x597b, 0x5211, 0x7a7d, - 0x5217, 0x562a, 0x521d, 0x7478, 0x5224, 0x7777, 0x5225, 0x5c2c, - 0x5229, 0x5757, 0x522a, 0x5f22, 0x522e, 0x4e3e, 0x5230, 0x5370, - 0x5236, 0x7024, 0x5237, 0x616c, 0x5238, 0x4f67, 0x5239, 0x734b, - 0x523a, 0x6d29, 0x523b, 0x4a3e, 0x5243, 0x746f, 0x5247, 0x764e, - 0x524a, 0x5e7b, 0x524b, 0x503b, 0x524c, 0x5537, 0x524d, 0x6e71, - 0x5254, 0x7428, 0x5256, 0x5c78, 0x525b, 0x4b27, 0x525d, 0x5a4e, - 0x5261, 0x6066, 0x5269, 0x6d25, 0x526a, 0x6e72, 0x526f, 0x5c79, - 0x5272, 0x795c, 0x5275, 0x735c, 0x527d, 0x7872, 0x527f, 0x7479, - 0x5283, 0x7c71, 0x5287, 0x503c, 0x5288, 0x5b79, 0x5289, 0x5731, - 0x528d, 0x4b7c, 0x5291, 0x7025, 0x5292, 0x4b7d, 0x529b, 0x5574, - 0x529f, 0x4d6d, 0x52a0, 0x4a25, 0x52a3, 0x562b, 0x52a4, 0x5042, - 0x52a9, 0x703e, 0x52aa, 0x523d, 0x52ab, 0x4c24, 0x52be, 0x7a36, - 0x52c1, 0x4c4d, 0x52c3, 0x5a7a, 0x52c5, 0x764f, 0x52c7, 0x6938, - 0x52c9, 0x5875, 0x52cd, 0x4c4e, 0x52d2, 0x574d, 0x52d5, 0x5451, - 0x52d6, 0x696d, 0x52d8, 0x4a6b, 0x52d9, 0x5962, 0x52db, 0x7d32, - 0x52dd, 0x632d, 0x52de, 0x564c, 0x52df, 0x5934, 0x52e2, 0x6127, - 0x52e3, 0x6e53, 0x52e4, 0x5043, 0x52f3, 0x7d33, 0x52f5, 0x5564, - 0x52f8, 0x4f68, 0x52fa, 0x6d43, 0x52fb, 0x5032, 0x52fe, 0x4e7e, - 0x52ff, 0x5a28, 0x5305, 0x7850, 0x5308, 0x7d56, 0x530d, 0x7851, - 0x530f, 0x7852, 0x5310, 0x5c53, 0x5315, 0x5d62, 0x5316, 0x7b79, - 0x5317, 0x5d41, 0x5319, 0x6335, 0x5320, 0x6d5d, 0x5321, 0x4e44, - 0x5323, 0x4b21, 0x532a, 0x5d63, 0x532f, 0x7c5d, 0x5339, 0x792f, - 0x533f, 0x527b, 0x5340, 0x4f21, 0x5341, 0x6428, 0x5343, 0x7436, - 0x5344, 0x6c7e, 0x5347, 0x632e, 0x5348, 0x676d, 0x5349, 0x7d41, - 0x534a, 0x5a62, 0x534d, 0x5833, 0x5351, 0x5d64, 0x5352, 0x706f, - 0x5353, 0x7671, 0x5354, 0x7a70, 0x5357, 0x5175, 0x535a, 0x5a4f, - 0x535c, 0x5c54, 0x535e, 0x5c26, 0x5360, 0x6f3f, 0x5366, 0x4e4f, - 0x5368, 0x6059, 0x536f, 0x5956, 0x5370,